ABC 423
Table of Contents
https://atcoder.jp/contests/abc423
A. Scary Fee
https://atcoder.jp/contests/abc423/tasks/abc423_a
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll X, C;
cin >> X >> C;
ll ans = X / (1000 + C) * 1000;
cout << ans << endl;
}
B. Locked Rooms
https://atcoder.jp/contests/abc423/tasks/abc423_b
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N;
cin >> N;
vint keys(N);
rep(i, N) cin >> keys[i];
vll visited(N + 1);
visited[0] = visited[N] = 1;
rep(i, N) {
if (keys[i] == 0) {
visited[i + 1] = 1;
} else {
break;
}
}
for (int i = N - 1; i >= 0; i--) {
if (keys[i] == 0)
visited[i] = 1;
else
break;
}
ll cnt = 0;
rep(i, N + 1) if (!visited[i]) cnt++;
cout << cnt << endl;
}
C. Lock All Doors
https://atcoder.jp/contests/abc423/tasks/abc423_c
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, R;
cin >> N >> R;
vint keys(N);
rep(i, N) cin >> keys[i];
fenwick_tree<ll> fw(N);
rep(i, N) fw.add(i, keys[i]);
ll lid = INF, rid = -1;
for (int i = R - 1; i >= 0; i--) {
if (keys[i] == 0) lid = i;
}
for (int i = R; i < N; i++) {
if (keys[i] == 0) rid = i;
}
ll ans = 0;
if (lid != INF) {
ll w = R - lid;
ll cnt = fw.sum(lid, R);
ans += w + cnt;
}
if (rid != -1) {
ll w = rid + 1 - R;
ll cnt = fw.sum(R, rid + 1);
ans += w + cnt;
}
cout << ans << endl;
}
D. Long Waiting
https://atcoder.jp/contests/abc423/tasks/abc423_d
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, K;
cin >> N >> K;
vll A(N), B(N), C(N);
rep(i, N) cin >> A[i] >> B[i] >> C[i];
// 退出時間, 人数
using P = pair<ll, ll>;
priority_queue<P, vector<P>, greater<P>> pq;
ll nump = 0;
int id = 0;
vll ans(N);
while (nump + C[id] <= K && id < N) {
pq.push({A[id] + B[id], C[id]});
ans[id] = A[id];
nump += C[id];
id++;
}
while (pq.size()) {
auto [exit_time, exit_num] = pq.top();
pq.pop();
nump -= exit_num;
while (nump + C[id] <= K && id < N) {
pq.push({max(A[id], exit_time) + B[id], C[id]});
nump += C[id];
ans[id] = max(A[id], exit_time);
id++;
}
}
for (ll x : ans) cout << x << '\n';
}
E. Sum of Subarrays
https://atcoder.jp/contests/abc423/tasks/abc423_e
F. Loud Cicada
https://atcoder.jp/contests/abc423/tasks/abc423_f