Submission #544810

#TimeUsernameProblemLanguageResultExecution timeMemory
544810blueIntercastellar (JOI22_ho_t1)C++17
100 / 100
114 ms9164 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
#include <stack>
#include <queue>
using namespace std;

using pii = pair<int, int>;
using vpii = vector<pii>;
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vll>;
using vi = vector<int>;
using vvi = vector<vi>;

#define sz(x) int(x.size())

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int N;
	cin >> N;

	vll A(1+N), C(1+N, 1);
	for(int i = 1; i <= N; i++)
	{
		cin >> A[i];
		while(A[i] % 2 == 0)
		{
			A[i] /= 2;
			C[i] *= 2;
		}
	}

	C[0] = 0;
	for(int i = 1; i <= N; i++) C[i] += C[i-1];


	int Q;
	cin >> Q;

	for(int j = 1; j <= Q; j++)
	{
		ll X;
		cin >> X;

		int lo = 1, hi = N;
		while(lo != hi)
		{
			int mid = (lo+hi)/2;
			if(C[mid] >= X)
				hi = mid;
			else
				lo = mid+1;
		}

		cout << A[lo] << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...