Submission #968938

#TimeUsernameProblemLanguageResultExecution timeMemory
968938willychanReal Mountains (CCO23_day1problem2)C++17
0 / 25
1 ms456 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define int ll //#include<bits/extc++.h> //__gnu_pbds const int MOD = 1e6+3; signed main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n;cin>>n; vector<int> h(n); for(int i=0;i<n;i++) cin>>h[i]; int ans; while(8){ pair<int,int> minn = {1e9,-1}; for(int i=0;i<n;i++) minn = min(minn,{h[i],i}); int k = minn.second; int cnt = 0; for(int i=0;i<n;i++) if(h[i]==minn.first) cnt++; int r=minn.first; int l = minn.first; for(int i=k;i<n;i++){ if(h[i]>r){ r = h[i]; break; } } for(int i=k;i>=0;i--){ if(h[i]>l){ l = h[i]; break; } } if(r==h[k] || l==h[k]) break; if(cnt==1){ ans+=minn.first+l+r; ans%=MOD; }else{ ans = (ans+minn.first+l+r)%MOD; ans = (ans+min(r,l)+2*minn.first+1)%MOD; ans = (ans+(((3LL*minn.first+2LL)*(cnt-2))%MOD))%MOD; } for(int i=0;i<n;i++) if(h[i]==minn.first) h[i]++; } cout<<0<<"\n"; return 0; cout<<ans<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...