Submission #922989

#TimeUsernameProblemLanguageResultExecution timeMemory
922989heeheeheehaawIntercastellar (JOI22_ho_t1)C++17
100 / 100
64 ms10836 KiB
#include <iostream>
#define int long long

using namespace std;

int v[200005];
int nr[200005];
int minn[200005];

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);

    int n;
    cin>>n;
    for(int i = 1; i <= n; i++)
    {
        cin>>v[i];
        int cnt = 1;
        int a = v[i];
        while(a % 2 == 0)
            a /= 2, cnt *= 2;
        nr[i] = cnt;
        nr[i] += nr[i - 1];
        minn[i] = a;
    }

    int q;
    cin>>q;
    for(int i = 1; i <= q; i++)
    {
        int t;
        cin>>t;
        int st = 1, dr = n, poz = 1;
        while(st <= dr)
        {
            int mij = (st + dr) / 2;
            if(nr[mij] >= t)
                poz = mij, dr = mij - 1;
            else st = mij + 1;
        }

        cout<<minn[poz]<<'\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...