結果

問題 No.885 アマリクエリ
ユーザー ngtkanangtkana
提出日時 2019-09-13 22:20:39
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
MLE  
実行時間 -
コード長 1,778 bytes
コンパイル時間 2,060 ms
コンパイル使用メモリ 204,448 KB
実行使用メモリ 814,796 KB
最終ジャッジ日時 2024-07-04 09:56:16
合計ジャッジ時間 5,200 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 MLE -
testcase_01 -- -
testcase_02 -- -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#define loop(n) for (int ngtkana_is_genius = 0; ngtkana_is_genius < int(n); ngtkana_is_genius++)
#define rep(i, begin, end) for(int i = int(begin); i < int(end); i++)
#define all(v) v.begin(), v.end()
#define lint long long
auto cmn = [](auto& a, auto b){if (a > b) {a = b; return true;} return false;};
auto cmx = [](auto& a, auto b){if (a < b) {a = b; return true;} return false;};
void debug_impl() { std::cerr << std::endl; }
template <typename Head, typename... Tail>
void debug_impl(Head head, Tail... tail){
  std::cerr << " " << head;
  debug_impl(tail...);
}
#define debug(...)\
  std::cerr << std::boolalpha << "[" << #__VA_ARGS__ << "]:";\
  debug_impl(__VA_ARGS__);\
  std::cerr << std::noboolalpha;

template <typename T>
std::istream& operator>> (std::istream& is, std::vector<T>& v) {
  for (auto & x : v) is >> x;
  return is;
}

template <typename T>
std::ostream& operator<< (std::ostream& os, const std::vector<T>& v) {
  auto n = v.size();
  os << "{";
  for (size_t i = 0; i < n; i++)
    {os << (i > 0 ? "," : "") << v.at(i);}
  return os << "}";
}

int main() {
  std::cin.tie(0); std::cin.sync_with_stdio(false);
  int n; std::cin >> n;
  std::vector< int > a(n); std::cin >> a;
  int q; std::cin >> q;
  q--;
  int max; std::cin >> max;
  for (auto & x : a) x %= max;
  auto now = std::accumulate(all(a), 0LL);
  std::cout << now << std::endl;
  std::vector< int > mul(max, 0);
  for (auto x : a) mul.at(x)++;
  loop(q) {
    int x; std::cin >> x;
    rep(i, x, (int)mul.size()) {
      auto crr = mul.at(i);
      auto q = i / x;
      auto r = i % x;
      assert(0 < q);
      now -= q * x * crr;
      mul.at(r) += crr;
    }
    mul.resize(std::min((int)mul.size(), x));
    std::cout << now << std::endl;
  }
  return 0;
}
0