Submission #816302

#TimeUsernameProblemLanguageResultExecution timeMemory
816302QwertyPiBrunhilda’s Birthday (BOI13_brunhilda)C++14
96.35 / 100
1014 ms114160 KiB
#include <bits/stdc++.h> #pragma GCC optimize("unroll-loops") #pragma GCC optimize("Ofast") using namespace std; const int MAXN = 1e7 + 11; const int MAXM = 1e5 + 11; int p[MAXM]; int lp[MAXN], dp[MAXN], c[MAXN], c2[MAXN], cm = 0; int32_t main(){ cin.tie(0); cout.tie(0)->sync_with_stdio(false); int n, Q; cin >> n >> Q; for(int i = 0; i < n; i++) cin >> p[i]; sort(p, p + n); for(int i = 0; i < n; i++){ for(int j = p[i]; j < MAXN; j += p[i]){ if(!lp[j]) lp[j] = p[i]; } } dp[1] = 0; c2[0] = n; cm = 0; for(int i = 2; i < MAXN; i++){ int x = i; while(lp[x] != 0){ if(lp[x] != lp[x / lp[x]]){ c2[c[lp[x]]]--; while(cm < MAXN - 1 && c2[cm] == 0) cm++; } x /= lp[x]; } int cur = cm; x = i; while(lp[x] != 0){ if(lp[x] != lp[x / lp[x]]){ c[lp[x]] = cur + 1; c2[cur + 1]++; } x /= lp[x]; } dp[i] = cur + 1; } for(int i = 0; i < Q; i++){ int k; cin >> k; cout << (dp[k] != MAXN ? to_string(dp[k]) : "oo") << '\n'; } }

Compilation message (stderr)

brunhilda.cpp: In function 'int32_t main()':
brunhilda.cpp:14:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   14 |     for(int i = 0; i < n; i++) cin >> p[i]; sort(p, p + n);
      |     ^~~
brunhilda.cpp:14:45: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   14 |     for(int i = 0; i < n; i++) cin >> p[i]; sort(p, p + n);
      |                                             ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...