제출 #1282799

#제출 시각아이디문제언어결과실행 시간메모리
1282799Muhammad_AneeqIntercastellar (JOI22_ho_t1)C++20
100 / 100
193 ms8744 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
inline void solve()
{
    int n;
    cin>>n;
    int a[n];
    for (auto& i:a)
        cin>>i;
    vector<pair<int,int>>val;
    for (int i=0;i<n;i++)
    {
        int z=a[i];
        while (z>0&&z%2==0)
            z/=2;
        val.push_back({z,a[i]/z});
        // cout<<z<<' '<<a[i]/z<<endl;
    }    
    int pre[n+1]={};
    for (int i=0;i<n;i++)
        pre[i+1]=pre[i]+val[i].second;
    int q;
    cin>>q;
    while (q--)
    {
        int x;
        cin>>x;
        int st=-1,en=n-1;
        while (st+1<en)
        {
            int mid=(st+en)/2;
            if (pre[mid+1]<x)
                st=mid;
            else
                en=mid;
        }
        cout<<val[en].first<<endl;
    }
}
signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int t=1;
    for (int i=1;i<=t;i++)
    {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...