제출 #968180

#제출 시각아이디문제언어결과실행 시간메모리
968180willychanReal Mountains (CCO23_day1problem2)C++17
0 / 25
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; //#include<bits/extc++.h> //__gnu_pbds const int MOD = 1e6+3; int main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); priority_queue<pair<int,int> ,vector<pair<int,int> >,greater<pair<int,int> > > pq; int ans = 0; int n; cin>>n; vector<int> arr(n); for(int i=0;i<n;i++) cin>>arr[i]; for(int i=0;i<n;i++) pq.push({arr[i],i}); while(pq.size()){ pair<int,int> cur = pq.top(); pq.pop(); if(cur.first!=arr[cur.second]) continue; int r = arr[cur.second]; int l = arr[cur.second]; for(int i=cur.second;i<n;i++){ if(arr[i]>arr[cur.second]) { r = arr[i]; break; } } for(int i=cur.second;i>=0;i--){ if(arr[i]>arr[cur.second]) { l = arr[i]; break; } } int a = min(r,l); if(a==arr[cur.second]) continue; ans+=l+r+arr[cur.second]; ans%=MOD; arr[cur.second]++; pq.push({arr[cur.second],cur.second}); } 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...