Submission #442401

#TimeUsernameProblemLanguageResultExecution timeMemory
442401koioi.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; int ans = 0; if(dep[i] % 2){ int j = i; while(~p[j] && cnt[p[j]] == 0){ j = p[j]; cnt[j]++; ans++; } if(~p[j]) cnt[p[j]]++; } else{ int j = i; while(~p[j] && cnt[p[j]] == 1){ j = p[j]; cnt[j]--; ans++; } if(~p[j]) cnt[p[j]]--; } 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...