Submission #25033933


Source Code Expand

#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

#define ld long double
#define ull unsigned long long
#define ll long long
#define pb push_back
#define ppb pop_back
#define eb emplace_back
#define pii pair<int, int>
#define pll pair<ll, ll>
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fast_io cout.tie(0), cin.tie(0), ios_base::sync_with_stdio(0)

//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("O3")

using namespace std;
//using namespace __gnu_pbds;
//typedef tree<ll, null_type, less_equal<>, rb_tree_tag,
//    tree_order_statistics_node_update> ordered_set;

ld eps = (ld) 1 / 1e6;
ll inf_ll = 1e18 + 100, mod1 = 1e9 + 7, mod2 = 998244353;
ll mersen_mod = 2305843009213693951;

ll sqr(ll a) { return a * a; }
ll qb(ll a) { return a * a * a; }
ll gcd(ll a, ll b) { return !a ? b : gcd(b % a, a); }
ll add(ll a, ll b, ll mod) {
  a += b;
  if (a >= mod) a -= mod;
  return a;
}
ll sub(ll a, ll b, ll mod) {
  a -= b;
  if (a < 0) a += mod;
  return a;
}
ll binpow(ll a, ll b, ll mod) {
  return b ? (b % 2 ? (a * (sqr(binpow(a, b / 2, mod)) % mod)) % mod :
              sqr(binpow(a, b / 2, mod)) % mod) : 1;
}
ll binmult(ll a, ll b, ll mod) {
  return b ? (b % 2 ? (2 * binmult(a, b / 2, mod) + a) % mod :
              (2 * binmult(a, b / 2, mod)) % mod) : 0;
}

/// Code here
pll a[200001];
ll ans[200001];
bool used[200001];
multiset<pll> mst;

int main() {
  fast_io;
  ll n, i;
  cin >> n;
  for (i = 1; i <= n; i++) cin >> a[i].first;
  for (i = 1; i <= n; i++) cin >> a[i].second, ans[i] = a[i].second, mst.insert({a[i].second, i});
  while (!mst.empty()) {
    auto f = mst.begin();
    ll cs = a[f->second].first, ct = f->first, cid = f->second;
    mst.erase(f);
    if (used[cid]) continue;
    used[cid] = 1;
    ans[cid] = ct;
    ll nxt = cid + 1;
    if (nxt > n) nxt = 1;
    if (ct + cs < ans[nxt] && !used[nxt]) mst.insert({ct + cs, nxt});
  }
  for (i = 1; i <= n; i++) cout << ans[i] << '\n';
  //cerr << '\n' << "Time execute: " << clock() / (double)CLOCKS_PER_SEC << " sec" << '\n';
  return 0;
}

Submission Info

Submission Time
Task C - Distribution
User thirty_something
Language C++ (GCC 9.2.1)
Score 300
Code Size 2284 Byte
Status AC
Exec Time 167 ms
Memory 21000 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 4
AC × 32
Set Name Test Cases
Sample sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt
All case_00.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, sample_00.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
case_00.txt AC 167 ms 20928 KiB
case_01.txt AC 106 ms 20992 KiB
case_02.txt AC 19 ms 5348 KiB
case_03.txt AC 6 ms 3752 KiB
case_04.txt AC 77 ms 11672 KiB
case_05.txt AC 30 ms 6448 KiB
case_06.txt AC 115 ms 16004 KiB
case_07.txt AC 54 ms 9288 KiB
case_08.txt AC 101 ms 14340 KiB
case_09.txt AC 149 ms 20388 KiB
case_10.txt AC 13 ms 4180 KiB
case_11.txt AC 47 ms 8324 KiB
case_12.txt AC 42 ms 7772 KiB
case_13.txt AC 138 ms 18516 KiB
case_14.txt AC 13 ms 3928 KiB
case_15.txt AC 68 ms 10900 KiB
case_16.txt AC 83 ms 12824 KiB
case_17.txt AC 90 ms 13824 KiB
case_18.txt AC 111 ms 15800 KiB
case_19.txt AC 125 ms 17008 KiB
case_20.txt AC 127 ms 17304 KiB
case_21.txt AC 117 ms 16928 KiB
case_22.txt AC 98 ms 20928 KiB
case_23.txt AC 99 ms 20952 KiB
case_24.txt AC 100 ms 21000 KiB
case_25.txt AC 98 ms 20932 KiB
case_26.txt AC 98 ms 20876 KiB
case_27.txt AC 100 ms 20904 KiB
sample_00.txt AC 8 ms 3620 KiB
sample_01.txt AC 2 ms 3536 KiB
sample_02.txt AC 2 ms 3496 KiB
sample_03.txt AC 3 ms 3596 KiB