Ural 1010. Discrete Function

1010. Discrete Function

Time limit: 1.0 second
Memory limit: 64 MB

There is a discrete function. It is specified for integer arguments from 1 to N (2 ≤ N≤ 100000). Each value of the function is longint (signed long in C++). You have to find such two points of the function for which all points between them are below than straight line connecting them and inclination of this straight line is the largest.

Input

There is an N in the first line. Than N lines follow with the values of the function for the arguments 1, 2, …, N respectively.

Output

A pair of integers, which are abscissas of the desired points, should be written into one line of output. The first number must be less then the second one. If it is any ambiguity your program should write the pair with the smallest first number.

Sample

input output
3
2
6
4
1 2

Problem Source: Third Open USTU Collegiate Programming Contest (PhysTech Cup), March 18, 2000

来源: <http://acm.timus.ru/problem.aspx?space=1&num=1010>

?存在一个离散函数,已知定义域为 1 到 N 的整数点,对应函数值在输入中。在图像上找到两个点,使得在它们之间的点都在两点连成直线的下方,且直线的倾斜角最大。

实际上,如果这样的直线下方还有点的话,则必存在下方的点与原直线右端点连成的新直线斜率更大。所以,遍历相邻的两个点差值即可,可以直接在读取输入时就求出。

可能我没懂题意,不明白为什么设 long 会WA,设double或long long才A。

#include <stdio.h>
#include <math.h>

double a[100002];

int main()
{  long n, i, j;  double k=0;  scanf("%ld", &n);  for (i = 0; i < n; i++)    scanf("%lf", &a[i]);  for (i = 1; i < n; i++) {    if (k < fabs(a[i] - a[i-1])) {      k = fabs(a[i]- a[i-1]);      j = i;    }  }  printf("%ld %ld\n", j, j+1);  return 0;
}

By Black Storm(使用为知笔记)

时间: 2024-10-09 01:32:47

Ural 1010. Discrete Function的相关文章

(转) Deep Learning in a Nutshell: Reinforcement Learning

Deep Learning in a Nutshell: Reinforcement Learning Share: Posted on September 8, 2016by Tim Dettmers No CommentsTagged Deep Learning, Deep Neural Networks, Machine Learning,Reinforcement Learning This post is Part 4 of the Deep Learning in a Nutshel

ActiveMQ笔记——技术点汇总

Table of contents · Introduction to ActiveMQ · Installing ActiveMQ · Message-oriented middleware · JMS specification · What's the Java Message Service? · JMS client · Non-JMS client · JMS producer · JSM consumer · JSM provider · JMS message · JMS dom

帮同学做的大一大作业:《我的家乡—郑州》

---恢复内容开始--- 最近在上海上学的一个高中同学让我帮忙,帮她做她们的计算机课程大作业. 由于关系不错我也不好意思拒绝就帮忙做了,因为这个学期刚刚开始接触HTML5和css,所以制作过程中有很多不懂的,而且由于HTML5是选修课,一星期只有一节,所以做这个花费了比较多的时间,这个网站是我制作的第一个网站,比较有纪念意义,所以发在博客上,作为纪念. 通过去做这个作业,我了解到很多课上学不到的东西.因为没有美工,从头到尾,都是我一个人在臆想,刚开始的时候,根本无从下手,我去参考别人做的家乡网站

寒假集训.Discrete-Function

Discrete Function Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Description There is a discrete function. It is specified for integer arguments from 1 to N (2 ≤ N ≤ 100000). Each value of the function is l

ACM-ICPC(11/8)

URAL 1005 给定一些石头的重量,要求分成两个部分最相近.二进制暴力枚举. #include <bits/stdc++.h> using namespace std; int w[25]; int main() { // freopen("in.txt","r",stdin); int n; scanf("%d",&n); int sum = 0; for(int i = 0; i < n; i++) { scan

通过百度echarts实现数据图表展示功能

现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解echarts是个怎样技术的开发者来说,可以到echarts官网进行学习了解,官网有详细的API文档和实例供大家参考学习. 2.以下是我在工作中实现整理出来的实例源码: 公用的支持js文件 echarts.js.echarts.min.js,还有其他的图表需要支持的js文件也可以到官网下载 echa

Ural 1353 Milliard Vasya&#39;s Function(DP)

题目地址:Ural 1353 定义dp[i][j],表示当前位数为i位时,各位数和为j的个数. 对于第i位数来说,总可以看成在前i-1位后面加上一个0~9,所以状态转移方程就很容易出来了: dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i][j-2]+.......+dp[i][j-9]: 最后统计即可. 代码如下: #include <iostream> #include <cstdio> #include <string> #include <

Ural 1353 Milliard Vasya&amp;#39;s Function(DP)

题目地址:Ural 1353 定义dp[i][j].表示当前位数为i位时,各位数和为j的个数. 对于第i位数来说.总能够看成在前i-1位后面加上一个0~9.所以状态转移方程就非常easy出来了: dp[i][j]=dp[i][j]+dp[i][j-1]+dp[i][j-2]+.......+dp[i][j-9]: 最后统计就可以. 代码例如以下: #include <iostream> #include <cstdio> #include <string> #inclu

编译安装libiconv报错:./stdio.h:1010:1: error: &#39;gets&#39; undeclared here (not in a function)

错误如下:     In file included from progname.c:26:0:     ./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)     _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");     ^     make[2]: *** [progname.o] Error 1     m