Submission #404917

#TimeUsernameProblemLanguageResultExecution timeMemory
404917FatihSolakExercise Deadlines (CCO20_day1problem2)C++17
0 / 25
3 ms2028 KiB
#include <bits/stdc++.h> #define N 200005 #define int long long using namespace std; int arr[N]; int brr[N]; struct BIT{ int n; vector<int> bit; BIT(int l){ n = l+1; bit.assign(n,0); } void upd(int pos){ for(;pos<n;pos+=pos&-pos){ bit[pos]++; } } int get(int pos){ int ret = 0; for(;pos>0;pos-=pos&-pos){ ret += bit[pos]; } return ret; } }bt(N); void solve(){ int n; cin >> n; for(int i=1;i<=n;i++){ cin >> arr[i]; brr[i] = arr[i]; } sort(brr+1,brr+n+1); for(int i=1;i<=n;i++){ if(brr[i] < i){ cout << -1; return; } } int ans = 0; for(int i=n;i>=1;i--){ if(arr[i] >=i+bt.get(i)){ continue; } ans += i+bt.get(i) - arr[i]; bt.upd(arr[i]); } cout << ans; } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); #ifdef Local freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t=1; //cin>>t; while(t--){ solve(); } #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...