Submission #1033615

#TimeUsernameProblemLanguageResultExecution timeMemory
1033615nguyendinhanh1508Intercastellar (JOI22_ho_t1)C++14
100 / 100
68 ms10724 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mx 1000007
#define inf LLONG_MAX/20
#define pi pair<int, int>
#define mp make_pair

int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n;
  cin >> n;
  int a[n];
  for(int i = 0; i < n; i++){
    cin >> a[i];
  }
  int pos[n];
  int val[n];
  int cur = 0;
  for(int i = 0; i < n; i++){
    int curbit = 0;
    while((a[i] & (1 << curbit)) == 0){
      curbit++;
    }
    val[i] = a[i] / (1 << curbit);
    pos[i] = cur;
    cur += (1 << curbit);
  }
  // for(int i = 0; i < n; i++){
  //   cerr << pos[i] << ' ' << val[i] << '\n';
  // }
  int arrsize = cur;
  // cerr << arrsize << '\n';
  int q;
  cin >> q;
  while(q--){
    int x;
    cin >> x;
    x--;
    // cerr << x << '\n';
    int l = 0, r = n - 1;
    int ans = 0;
    while(l <= r){
      int mid = (l + r) / 2;
      if(pos[mid] <= x){
        l = mid + 1;
        ans = val[mid];
      } else r = mid - 1;
    }
    cout << ans << '\n';
  }
  return 0; 
}

Compilation message (stderr)

Main.cpp: In function 'int32_t main()':
Main.cpp:34:7: warning: unused variable 'arrsize' [-Wunused-variable]
   34 |   int arrsize = cur;
      |       ^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...