Submission #503301

#TimeUsernameProblemLanguageResultExecution timeMemory
503301LoboBrunhilda’s Birthday (BOI13_brunhilda)C++17
100 / 100
483 ms4504 KiB
#include<bits/stdc++.h> using namespace std; const long long inf = (long long) 1e18 + 10; const int inf1 = (int) 1e9 + 10; #define int long long #define dbl long double #define endl '\n' #define sc second #define fr first #define mp make_pair #define pb push_back #define all(x) x.begin(), x.end() #define maxn 110000 #define mxv 10000000 int m, q, p[maxn]; void solve() { cin >> m >> q; int lc = 1; for(int i = 1; i <= m; i++) { cin >> p[i]; lc = lc*p[i]; lc = min(lc, (int) mxv+1); } vector<int> d; //d[0] = 0; d.pb(0); int act = 1; while(act < lc) { int l = act; int r = mxv; int ans = act; while(l <= r) { int mid = (l+r)/2; bool ok = false; for(int i = 1; i <= m; i++) { if(mid - mid%p[i] < act) ok = true; } if(ok) { l = mid+1; ans = mid; } else r = mid-1; } d.pb(ans); act = ans+1; } // for(auto x : d) { // cout << x << endl; // } for(int i = 1; i <= q; i++) { int x; cin >> x; auto it = lower_bound(all(d),x); if(it == d.end()) { cout << "oo" << endl; } else cout << it-d.begin() << endl; } } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); // freopen("in.in", "r", stdin); //freopen("out.out", "w", stdout); int tt = 1; // cin >> tt; while(tt--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...