Submission #959250

#TimeUsernameProblemLanguageResultExecution timeMemory
959250mannshah1211Intercastellar (JOI22_ho_t1)C++17
100 / 100
58 ms8656 KiB
/**
 *  author: hashman
 *  created: 
**/

#include <bits/stdc++.h>

using namespace std;

string to_string(string s) {
  return '"' + s + '"';
}

string to_string(const char* s) {
  return to_string((string) s);
}

string to_string(bool b) {
  return (b ? "true" : "false");
}

template <typename A, typename B>
string to_string(pair<A, B> p) {
  return "(" + to_string(p.first) + ", " + to_string(p.second) + ")";
}

template <typename A>
string to_string(A v) {
  bool first = true;
  string res = "{";
  for (const auto &x : v) {
   if (!first) {
    res += ", ";
   }
   first = false;
   res += to_string(x);
  }
  res += "}";
  return res;
}

void debug_out() {
  cerr << endl;
}

template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug_out(T...);
}

#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__);

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  vector<pair<int, int>> ans;
  for (int i = 0; i < n; i++) {
    int old = a[i];
    while (a[i] % 2 == 0) {
      a[i] = a[i] / 2;
    }
    ans.push_back(make_pair(a[i], old / a[i]));
  }
  int ptr = 0;
  int64_t consumed = 0;
  int q;
  cin >> q;
  for (int i = 0; i < q; i++) {
    int64_t x;
    cin >> x;
    while (consumed + ans[ptr].second < x) {
      consumed += ans[ptr].second;
      ptr++;
    }
    cout << ans[ptr].first << '\n';
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...