Submission #1315428

#TimeUsernameProblemLanguageResultExecution timeMemory
1315428samarthkulkarniAirplane (NOI23_airplane)C++20
0 / 100
47 ms14440 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"
#define pr pair<ll, ll>
#define ff first
#define ss second

void solution();
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solution();
	return 0;
}

#define arr array<ll, 4>

const int N = 2e5+10;
vi adj[N];
ll a[N];



void solution() {
	ll n, m; cin >> n >> m;
	for (int i = 1; i <= n; i++) cin >> a[i];

	while (m--) {
		int u, v; cin >> u >> v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}



	vi suf(n+2);
	for (int i = n; i >= 1; i--) suf[i] = max(suf[i+1], a[i]);

	ll x = 0;
	ll ans = 0;

	for (int i = 2; i < n; i++) {
		if (suf[i] > x) {
			if (a[i] > x) {
				ll delta = a[i]-x;
				x += delta;
				ans+=delta;
			} else ans++;
		} else {
			ans++;
			if (suf[i] <= x-1) x--; 
		}
	}

	cout << ans + x << endl;


}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...