Submission #279652

#TimeUsernameProblemLanguageResultExecution timeMemory
279652arnold518Exercise Deadlines (CCO20_day1problem2)C++14
25 / 25
141 ms14148 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2e5; int N, A[MAXN+10]; vector<int> P[MAXN+10]; int tree[MAXN+10]; void update(int i, int k) { for(; i<=N; i+=(i&-i)) tree[i]+=k; } int query(int i) { int ret=0; for(; i>0; i-=(i&-i)) ret+=tree[i]; return ret; } ll ans; int main() { scanf("%d", &N); for(int i=1; i<=N; i++) scanf("%d", &A[i]), P[A[i]].push_back(i); priority_queue<int> PQ; for(int i=1; i<=N; i++) update(i, 1); for(int i=N; i>=1; i--) { for(auto it : P[i]) PQ.push(it); if(PQ.empty()) return !printf("-1\n"); int now=PQ.top(); PQ.pop(); update(N-now+1, -1); ans+=query(N-now+1); } printf("%lld\n", ans); }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   21 |  scanf("%d", &N);
      |  ~~~~~^~~~~~~~~~
Main.cpp:22:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   22 |  for(int i=1; i<=N; i++) scanf("%d", &A[i]), P[A[i]].push_back(i);
      |                          ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...