Submission #256215

#TimeUsernameProblemLanguageResultExecution timeMemory
256215amoo_safarBrunhilda’s Birthday (BOI13_brunhilda)C++14
100 / 100
69 ms4208 KiB
// Zende bad Shoma nasime faghat ! #include <bits/stdc++.h> #define pb push_back #define F first #define S second #define all(x) x.begin(), x.end() #define debug(x) cerr << #x << " : " << x << '\n' using namespace std; typedef long long ll; typedef long double ld; typedef string str; typedef pair<ll, ll> pll; const ll Mod = 1000000007LL; const int N = 2e5 + 10; const ll Inf = 2242545357980376863LL; const ll Log = 30; int m, Q; int p[N], ans[N]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); memset(ans, -1, sizeof ans); cin >> m >> Q; for(int i = 0; i < m; i++) cin >> p[i]; vector< pair<int, int> > V; int v; for(int i = 0; i < Q; i++){ cin >> v; V.pb({v, i}); } sort(all(V)); int po = 0; int R = 0, R2, cnt = 0; while(R <= 10000000){ R2 = R; for(int i = 0; i < m; i++) R2 = max(R2, R - (R % p[i]) + p[i] - 1); cnt ++; while((po < (int) V.size()) && (V[po].F <= R2)){ ans[V[po ++].S] = cnt; } if(R2 == R) break; R = R2; } for(int i = 0; i < Q; i++){ if(ans[i] == -1) cout << "oo\n"; else cout << ans[i] << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...