Submission #442400

#TimeUsernameProblemLanguageResultExecution timeMemory
442400koioi.org-koosagaCounterspells (CPSPC17_counterspells)C++17
60 / 100
1084 ms3780 KiB
#include <bits/stdc++.h> #define sz(v) ((int)(v).size()) #define all(v) (v).begin(), (v).end() using namespace std; using lint = long long; using pi = pair<int, int>; const int MAXN = 200005; const int mod = 1e9 + 7; int n, p[MAXN], dep[MAXN]; int val[MAXN], cnt[MAXN]; int main(){ scanf("%d",&n); p[0] = -1; for(int i = 1; i <= n; i++){ scanf("%d",&p[i]); dep[i] = dep[p[i]] + 1; if(dep[i] % 2) cnt[i]++; } for(int i = 1; i <= n; i++){ val[i] = dep[i] % 2; if(dep[i] % 2) cnt[p[i]]++; else cnt[p[i]]--; int ans = 0; for(int j = p[i]; j != -1; j = p[j]){ int cur = val[j]; int nxt = (cnt[j] > 0); if(cur != nxt){ val[j] ^= 1; if(~p[j]){ if(val[j] == 1) cnt[p[j]]++; else cnt[p[j]]--; } ans++; } else break; } printf("%d\n", ans); } }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:14:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  scanf("%d",&n);
      |  ~~~~~^~~~~~~~~
Main.cpp:17:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |   scanf("%d",&p[i]);
      |   ~~~~~^~~~~~~~~~~~
#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...