제출 #1017951

#제출 시각아이디문제언어결과실행 시간메모리
1017951ag_1204Intercastellar (JOI22_ho_t1)C++14
35 / 100
2097 ms6484 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int #define pii pair<int,int> #define vi vector<int> #define si set<int> #define pb push_back int pow2(int n) { return (n & (~(n - 1))); } int low(vector<int> v,int k,int n) { int lo = 0,hi = n - 1; while (lo < hi) { int mid = (lo + hi) / 2; if (v[mid] < k) lo = mid + 1; else hi = mid; } return hi; } void solve() { int n; cin>>n; int a[n]; map<int,int> poww; for (int i=0;i<30;i++) { int k=pow(2,i); poww[k]=i; } vi vals(n),sums(n); int sum=0; for (int i=0;i<n;i++) { cin>>a[i]; int m=pow2(a[i]); a[i]/=m; sum+=m; vals[i]=a[i]; sums[i]=sum; } int q; cin>>q; while(q--) { int x; cin>>x; int i=low(sums,x,n); cout<<vals[i]<<endl; } return; } int32_t main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int tt=1; //cin>>tt; while(tt--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...