463B. Caisa and Pylons
2015-12-01 20:07
513 查看
B. Caisa and Pylons
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Caisa solved the problem with the sugar and now he is on the way back to home.
Caisa is playing a mobile game during his path. There are (n + 1) pylons numbered from 0 to n in
this game. The pylon with number 0has zero height, the pylon with number i (i > 0) has
height hi.
The goal of the game is to reach n-th pylon, and the only move the player can do is to jump from the current pylon (let's denote its
number as k) to the next one (its number will be k + 1).
When the player have made such a move, its energy increases by hk - hk + 1 (if
this value is negative the player loses energy). The player must have non-negative amount of energy at any moment of the time.
Initially Caisa stand at 0 pylon and has 0 energy.
The game provides a special opportunity: one can pay a single dollar and increase the height of anyone pylon by one. Caisa may use that opportunity several times, but he doesn't want to spend too much money. What is the minimal amount of money he must paid
to reach the goal of the game?
Input
The first line contains integer n (1 ≤ n ≤ 105).
The next line contains n integers h1, h2, ..., hn (1 ≤ hi ≤ 105) representing
the heights of the pylons.
Output
Print a single number representing the minimum number of dollars paid by Caisa.
Sample test(s)
input
output
input
output
Note
In the first sample he can pay 4 dollars and increase the height of pylon with number 0 by 4 units.
Then he can safely pass to the last pylon.
水题不解释
#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
int n,energy=0,ans=0;
cin>>n;
int a=0,b;
while(n--)
{
cin>>b;
energy+=a-b;
if(energy<0)
{
ans+=abs(energy);
energy=0;
}
a=b;
}
cout<<ans<<"\n";
return 0;
}
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Caisa solved the problem with the sugar and now he is on the way back to home.
Caisa is playing a mobile game during his path. There are (n + 1) pylons numbered from 0 to n in
this game. The pylon with number 0has zero height, the pylon with number i (i > 0) has
height hi.
The goal of the game is to reach n-th pylon, and the only move the player can do is to jump from the current pylon (let's denote its
number as k) to the next one (its number will be k + 1).
When the player have made such a move, its energy increases by hk - hk + 1 (if
this value is negative the player loses energy). The player must have non-negative amount of energy at any moment of the time.
Initially Caisa stand at 0 pylon and has 0 energy.
The game provides a special opportunity: one can pay a single dollar and increase the height of anyone pylon by one. Caisa may use that opportunity several times, but he doesn't want to spend too much money. What is the minimal amount of money he must paid
to reach the goal of the game?
Input
The first line contains integer n (1 ≤ n ≤ 105).
The next line contains n integers h1, h2, ..., hn (1 ≤ hi ≤ 105) representing
the heights of the pylons.
Output
Print a single number representing the minimum number of dollars paid by Caisa.
Sample test(s)
input
5 3 4 3 2 4
output
4
input
3
4 4 4
output
4
Note
In the first sample he can pay 4 dollars and increase the height of pylon with number 0 by 4 units.
Then he can safely pass to the last pylon.
水题不解释
#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
int n,energy=0,ans=0;
cin>>n;
int a=0,b;
while(n--)
{
cin>>b;
energy+=a-b;
if(energy<0)
{
ans+=abs(energy);
energy=0;
}
a=b;
}
cout<<ans<<"\n";
return 0;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C++联合体转换成C#结构的实现方法
- C#实现的算24点游戏算法实例分析
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析