Submission #531990

#TimeUsernameProblemLanguageResultExecution timeMemory
531990Haruto810198Intercastellar (JOI22_ho_t1)C++17
100 / 100
83 ms10672 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define double long double #define FOR(i, l, r, d) for(int i=(l); i<=(r); i+=(d)) #define szof(x) ((int)(x).size()) #define vi vector<int> #define pii pair<int, int> #define F first #define S second #define pb push_back #define eb emplace_back #define mkp make_pair const int INF = INT_MAX; const int LNF = INF*INF; const int MOD = 1000000007; const int mod = 998244353; const double eps = 1e-12; //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") const int MAX = 200010; int n, q; int val[MAX], cnt[MAX]; int pref[MAX]; int solve(int T){ int L = 1, R = n, mid; while(L < R){ mid = (L + R) / 2; if(pref[mid] >= T) R = mid; else L = mid + 1; } return val[L]; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; FOR(i, 1, n, 1){ cin>>val[i]; cnt[i] = 1; while(val[i] % 2 == 0){ val[i] /= 2; cnt[i] *= 2; } pref[i] = pref[i-1] + cnt[i]; } cin>>q; FOR(i, 1, q, 1){ int T; cin>>T; cout<<solve(T)<<'\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...