QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#133042 | #6630. Triangle Collection | tatyam# | 0 | 2ms | 7836kb | C++17 | 1.5kb | 2023-08-01 13:49:06 | 2024-07-04 01:04:56 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define all(a) begin(a), end(a)
using ll = long long;
/*
l no nagai hou ga 3 honme no jouken ga yurui
l no nagai hou kara, kisuu de amatteiru bou wo hirotteiku
kore de hiroenai bou ha zettai ni tukaenai
nokori ha pair ni natteru kara, l no mijikai pair kara kuzusu
mod 3 dake nokotte, hoka ha zenbu tukaeru
zettai ni tukaenai bou no kazu wo kazoeru
segtree ni noru?
l=1, l<=1, l=2, l=3, l<=3, ...
zougen ga atte, ruisekiwa sita toki no minimum ga kotae
*/
struct T {
ll add = 0, min = 0;
};
T operator+(T a, T b) {
return {a.add + b.add, min(b.min, b.add + a.min)};
}
#ifdef DEBUG
const ll MAX = 1 << 3;
#else
const ll MAX = 1 << 19;
#endif
T seg[MAX * 2];
void add(ll i, ll x) {
i += MAX;
seg[i].min = min(0LL, seg[i].add += x);
while(i >>= 1) seg[i] = seg[i << 1] + seg[i << 1 | 1];
}
ll get() {
return seg[1].min;
}
int main() {
cin.tie(0)->sync_with_stdio(0);
ll N, Q;
cin >> N >> Q;
vector<ll> C(N);
for(ll& c : C) cin >> c;
ll num_edge = 0;
C.insert(C.begin(), 0);
for(ll l = 1; l <= N; l++) {
ll& c = C[l];
add(l, -(c % 2));
add(l * 2 - 1, c / 2);
num_edge += c;
}
while(Q--) {
ll l, d;
cin >> l >> d;
ll& c = C[l];
add(l, c % 2 - (c + d) % 2);
add(l * 2 - 1, (c + d) / 2 - (c / 2));
num_edge += d;
cout << (num_edge + get()) / 3 << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 5
Accepted
time: 0ms
memory: 7620kb
input:
1 23 1485 1 -12 1 -30 1 -20 1 6 1 24 1 5 1 31 1 14 1 -34 1 -22 1 -45 1 37 1 46 1 9 1 22 1 -9 1 9 1 -46 1 -47 1 39 1 36 1 -36 1 50
output:
491 481 474 476 484 486 496 501 489 482 467 479 495 498 505 502 505 490 474 487 499 487 504
result:
ok 23 numbers
Test #2:
score: 0
Accepted
time: 1ms
memory: 7744kb
input:
12 1 13 79 59 21 32 13 85 40 74 15 49 56 3 31
output:
189
result:
ok 1 number(s): "189"
Test #3:
score: 0
Accepted
time: 0ms
memory: 7676kb
input:
50 1995 3 2 3 0 3 0 5 2 2 2 3 0 4 5 4 4 3 0 1 0 5 5 3 4 3 3 1 1 4 5 5 4 1 1 3 1 4 2 1 3 4 1 5 5 0 3 0 3 4 3 49 1 48 -2 45 3 49 0 31 -4 13 0 15 -2 48 0 38 -2 8 0 48 3 12 1 22 -4 7 -5 5 -1 3 1 15 -2 37 -4 39 -1 24 -2 11 2 35 -2 17 -1 41 -2 20 5 8 0 18 0 26 -3 25 -3 49 -5 31 4 46 -2 38 0 42 3 16 -4 5 3...
output:
44 44 45 45 43 43 43 43 42 42 43 43 42 40 40 40 40 38 38 37 38 37 37 36 38 38 38 37 36 34 36 35 35 36 35 36 36 37 36 37 37 38 38 38 39 38 37 36 36 35 36 36 36 36 35 35 35 35 33 35 35 34 34 33 34 35 36 36 35 35 37 36 36 36 35 35 35 35 35 36 37 37 37 36 37 36 38 38 38 39 39 38 38 38 37 39 39 41 40 40 ...
result:
ok 1995 numbers
Test #4:
score: -5
Wrong Answer
time: 1ms
memory: 7784kb
input:
50 1996 0 1 0 1 2 2 4 1 3 2 5 3 4 1 5 5 1 2 0 2 1 2 5 4 3 1 4 5 1 2 3 5 5 1 4 4 2 3 5 3 1 3 2 3 3 0 4 2 5 0 29 4 50 3 30 2 6 0 26 -1 13 -2 34 1 5 2 23 -5 45 1 30 -4 17 3 40 1 49 -5 24 -1 35 -2 12 -2 30 1 3 0 5 -3 38 0 14 -1 38 2 25 -3 25 0 26 2 20 1 24 2 43 1 27 -2 38 -2 12 3 43 1 4 3 13 1 25 2 26 -...
output:
44 45 46 46 46 45 45 46 44 45 43 44 45 43 43 42 41 42 42 41 41 40 41 40 40 41 41 42 42 41 41 42 42 43 43 44 44 44 44 45 45 46 47 47 47 46 46 44 44 44 44 44 44 44 43 43 42 41 41 42 43 43 45 45 45 45 45 45 45 44 43 44 44 44 45 44 45 46 45 44 43 43 43 43 43 44 44 44 46 45 43 44 44 44 43 44 45 44 44 44 ...
result:
wrong answer 535th numbers differ - expected: '46', found: '45'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #28:
score: 0
Wrong Answer
time: 2ms
memory: 7792kb
input:
1999 2000 1 1 1 1 0 2 0 2 1 0 2 1 2 2 2 1 2 0 0 1 2 2 0 1 0 1 0 2 0 0 2 1 1 1 1 0 1 2 1 2 1 1 1 1 1 0 2 2 0 2 1 1 2 0 0 2 0 0 2 1 2 0 0 1 1 2 0 2 2 2 1 2 0 2 1 2 0 1 2 2 2 1 1 2 1 1 1 1 0 0 1 1 0 1 2 1 0 0 2 0 2 2 2 0 1 1 2 0 0 1 0 0 2 1 2 1 2 0 1 1 2 2 0 0 1 2 2 1 2 1 2 2 2 0 0 1 1 2 1 1 2 2 2 2 2 ...
output:
660 660 660 661 661 661 661 660 660 660 660 661 662 662 663 663 662 661 662 662 661 660 661 660 660 660 661 661 661 661 662 661 661 660 661 660 659 658 658 659 659 658 659 660 660 660 660 660 660 659 659 659 659 659 659 659 659 660 659 658 658 658 658 657 657 657 658 657 656 657 657 657 656 656 655 ...
result:
wrong answer 86th numbers differ - expected: '657', found: '658'
Subtask #4:
score: 0
Wrong Answer
Test #35:
score: 0
Wrong Answer
time: 0ms
memory: 7836kb
input:
2000 1999 0 1 0 3 0 1 0 0 0 0 0 0 0 2 0 0 0 0 3 1 1 0 2 0 0 3 0 0 0 0 0 4 0 0 1 0 1 0 0 0 0 1 2 1 0 0 0 0 7 0 1 3 1 0 1 1 0 3 2 1 0 1 1 3 3 1 0 2 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 1 2 3 0 1 0 3 3 0 0 0 0 1 0 1 2 0 0 2 2 0 1 2 1 2 0 0 0 1 1 0 1 2 0 0 0 0 2 0 5 0 0 0 0 0 1 0 0 2 0 1 2 0 1 0 0 0 2 0 ...
output:
666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 666 665 665 665 665 665 665 665 665 665 665 665 665 665 665 665 665 665 666 666 666 666 666 666 666 666 666 666 666 666 666 665 ...
result:
wrong answer 78th numbers differ - expected: '666', found: '665'
Subtask #5:
score: 0
Skipped
Dependency #1:
0%