n= int(input())
ls = list(map(int , input().split()))
dollars=ls[0]
energy = 0
for i in range (n-1):
step=ls[i]-ls[i+1]
energy +=step
if energy<0:
dollars+=-energy
energy=0
print(dollars)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
#define test_case int t;cin>>t;while(t--)
#define ll long long
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
//#define endl "\n"
/*
include <ext/pb_ds/assoc_container.hpp>
include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template<class T> using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
// less: it is the basic for comparison of two function. Use less_equal for ordered multiset.
// order_of_key(k): Number of items strictly smaller than k
// find_by_order(k): kth element in a set (counting from zero)
*/
const double pi = acos(-1.0);
const double EPS = 1e-9;
const int mod = 1e9+7;
void Fast()
{
std::ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int gcd(ll a, ll b)
{
return a ? gcd(b % a, a) : b;
}
ll lcm(ll a, ll b)
{
return a / gcd(a, b) * b;
}
void solve()
{
int N;
cin>>N;
vector<int>V(N);
for (int I=0;I<N;I++)
{
cin>>V[I];
}
int E=0,cost=V[0];
for (int I=0;I<N-1;I++)
{
if (V[I]-V[I+1]<0)
{
if (E>=abs(V[I]-V[I+1]))
{
E-=abs(V[I]-V[I+1]);
}
else
{
cost+=abs(V[I]-V[I+1])-E;
E=0;
}
}
else
{
E+=V[I]-V[I+1];
}
}
cout<<cost<<endl;
}
int main()
{
//freopen("hunter.in","r",stdin);
//freopen(".out","w",stdout);
Fast();
//test_case
solve();
return 0;
}
938. Range Sum of BST | 147. Insertion Sort List |
310. Minimum Height Trees | 2110. Number of Smooth Descent Periods of a Stock |
2109. Adding Spaces to a String | 2108. Find First Palindromic String in the Array |
394. Decode String | 902. Numbers At Most N Given Digit Set |
221. Maximal Square | 1200. Minimum Absolute Difference |
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |