Submission #886142

#TimeUsernameProblemLanguageResultExecution timeMemory
886142vjudge1Airplane (NOI23_airplane)C++17
22 / 100
155 ms16724 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int INF = LONG_LONG_MAX;
int32_t main(){
	int n,m;cin>>n>>m;
	vector<int> arr(n);
	for (int i = 0; i < n; ++i)
	{
		cin>>arr[i];
	}
	vector<vector<int>> tree(n);
	for (int i = 0; i < m; i++){
		int u,v;cin>>u>>v;
		tree[u-1].push_back(v-1);
		tree[v-1].push_back(u-1);
	}
	vector<int> suff = arr;
	for (int i = n-2; i >= 0; i--){
		suff[i]=max(suff[i+1],suff[i]);
	}
	int crh = 0;
	int ans = 0;
	int maxind = 0;
	for (int i = 0; i < n; ++i)
	{
		if (arr[i]>arr[maxind]) maxind=i;
	}
	for (int i = 0; i < maxind; i++){
		ans++;
		if (crh<arr[maxind]){
			crh++;
			if (crh<arr[i+1]){
				ans+=arr[i+1]-crh;
				crh=arr[i+1];
			}
		}
	}
	for (int i = maxind; i < n-1; i++){
		if (crh>suff[i+1]) crh--;
		ans++;
	}
	cout<<ans+crh<<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...