# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
611753 |
2022-07-29T07:08:53 Z |
박상훈(#8496) |
Tenis (COI19_tenis) |
C++17 |
|
124 ms |
11888 KB |
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
struct Node{
ll prf, sum, idx;
Node(){}
Node(ll _prf, ll _sum, ll _idx): prf(_prf), sum(_sum), idx(_idx) {}
Node operator + (const Node &N) const{
Node ret = *this;
ret.sum += N.sum;
if (ret.prf > sum + N.prf){
ret.prf = sum + N.prf;
ret.idx = N.idx;
}
return ret;
}
};
int pos[4][100100], a[4][100100];
struct Seg{
Node tree[400400];
void init(int i, int l, int r){
if (l==r){
tree[i] = Node(pos[2][a[1][l]] + pos[3][a[1][l]] - l*2, pos[2][a[1][l]] + pos[3][a[1][l]] - l*2, l);
return;
}
int m = (l+r)>>1;
init(i<<1, l, m); init(i<<1|1, m+1, r);
tree[i] = tree[i<<1] + tree[i<<1|1];
}
void update(int i, int l, int r, int s){
if (r<s || s<l) return;
if (l==r){
tree[i] = Node(pos[2][a[1][l]] + pos[3][a[1][l]] - l*2, pos[2][a[1][l]] + pos[3][a[1][l]] - l*2, l);
return;
}
int m = (l+r)>>1;
update(i<<1, l, m, s); update(i<<1|1, m+1, r, s);
tree[i] = tree[i<<1] + tree[i<<1|1];
}
}tree;
int main(){
int n, q;
scanf("%d %d", &n, &q);
for (int i=1;i<=3;i++){
for (int j=1;j<=n;j++){
scanf("%d", a[i]+j);
pos[i][a[i][j]] = j;
}
}
tree.init(1, 1, n);
while(q--){
int op;
scanf("%d", &op);
if (op==1){
int x;
scanf("%d", &x);
//printf("%lld %lld %lld\n", tree.tree[1].prf, tree.tree[1].sum, tree.tree[1].idx);
if (pos[1][x] <= tree.tree[1].idx) printf("DA\n");
else printf("NE\n");
}
else{
int p, x, y;
scanf("%d %d %d", &p, &x, &y);
swap(pos[p][x], pos[p][y]);
a[p][pos[p][x]] = x;
a[p][pos[p][y]] = y;
tree.update(1, 1, n, pos[1][x]);
tree.update(1, 1, n, pos[1][y]);
}
}
return 0;
}
Compilation message
tenis.cpp: In function 'int main()':
tenis.cpp:47:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
47 | scanf("%d %d", &n, &q);
| ~~~~~^~~~~~~~~~~~~~~~~
tenis.cpp:50:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
50 | scanf("%d", a[i]+j);
| ~~~~~^~~~~~~~~~~~~~
tenis.cpp:59:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
59 | scanf("%d", &op);
| ~~~~~^~~~~~~~~~~
tenis.cpp:62:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
62 | scanf("%d", &x);
| ~~~~~^~~~~~~~~~
tenis.cpp:69:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
69 | scanf("%d %d %d", &p, &x, &y);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
0 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
304 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
0 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
304 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
312 KB |
Output is correct |
11 |
Correct |
2 ms |
340 KB |
Output is correct |
12 |
Correct |
1 ms |
316 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
0 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
304 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
312 KB |
Output is correct |
11 |
Correct |
2 ms |
340 KB |
Output is correct |
12 |
Correct |
1 ms |
316 KB |
Output is correct |
13 |
Correct |
44 ms |
8920 KB |
Output is correct |
14 |
Correct |
56 ms |
8888 KB |
Output is correct |
15 |
Correct |
46 ms |
8860 KB |
Output is correct |
16 |
Correct |
39 ms |
8872 KB |
Output is correct |
17 |
Correct |
54 ms |
8904 KB |
Output is correct |
18 |
Correct |
37 ms |
8816 KB |
Output is correct |
19 |
Correct |
31 ms |
8868 KB |
Output is correct |
20 |
Correct |
34 ms |
8824 KB |
Output is correct |
21 |
Correct |
33 ms |
8844 KB |
Output is correct |
22 |
Correct |
36 ms |
8884 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
55 ms |
9324 KB |
Output is correct |
2 |
Correct |
51 ms |
9292 KB |
Output is correct |
3 |
Correct |
58 ms |
9304 KB |
Output is correct |
4 |
Correct |
50 ms |
9292 KB |
Output is correct |
5 |
Correct |
53 ms |
9348 KB |
Output is correct |
6 |
Correct |
50 ms |
9272 KB |
Output is correct |
7 |
Correct |
52 ms |
9324 KB |
Output is correct |
8 |
Correct |
55 ms |
9268 KB |
Output is correct |
9 |
Correct |
52 ms |
9320 KB |
Output is correct |
10 |
Correct |
53 ms |
9288 KB |
Output is correct |
11 |
Correct |
55 ms |
9292 KB |
Output is correct |
12 |
Correct |
67 ms |
9260 KB |
Output is correct |
13 |
Correct |
55 ms |
9292 KB |
Output is correct |
14 |
Correct |
50 ms |
9348 KB |
Output is correct |
15 |
Correct |
70 ms |
9236 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
0 ms |
340 KB |
Output is correct |
3 |
Correct |
0 ms |
304 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
312 KB |
Output is correct |
11 |
Correct |
2 ms |
340 KB |
Output is correct |
12 |
Correct |
1 ms |
316 KB |
Output is correct |
13 |
Correct |
44 ms |
8920 KB |
Output is correct |
14 |
Correct |
56 ms |
8888 KB |
Output is correct |
15 |
Correct |
46 ms |
8860 KB |
Output is correct |
16 |
Correct |
39 ms |
8872 KB |
Output is correct |
17 |
Correct |
54 ms |
8904 KB |
Output is correct |
18 |
Correct |
37 ms |
8816 KB |
Output is correct |
19 |
Correct |
31 ms |
8868 KB |
Output is correct |
20 |
Correct |
34 ms |
8824 KB |
Output is correct |
21 |
Correct |
33 ms |
8844 KB |
Output is correct |
22 |
Correct |
36 ms |
8884 KB |
Output is correct |
23 |
Correct |
55 ms |
9324 KB |
Output is correct |
24 |
Correct |
51 ms |
9292 KB |
Output is correct |
25 |
Correct |
58 ms |
9304 KB |
Output is correct |
26 |
Correct |
50 ms |
9292 KB |
Output is correct |
27 |
Correct |
53 ms |
9348 KB |
Output is correct |
28 |
Correct |
50 ms |
9272 KB |
Output is correct |
29 |
Correct |
52 ms |
9324 KB |
Output is correct |
30 |
Correct |
55 ms |
9268 KB |
Output is correct |
31 |
Correct |
52 ms |
9320 KB |
Output is correct |
32 |
Correct |
53 ms |
9288 KB |
Output is correct |
33 |
Correct |
55 ms |
9292 KB |
Output is correct |
34 |
Correct |
67 ms |
9260 KB |
Output is correct |
35 |
Correct |
55 ms |
9292 KB |
Output is correct |
36 |
Correct |
50 ms |
9348 KB |
Output is correct |
37 |
Correct |
70 ms |
9236 KB |
Output is correct |
38 |
Correct |
121 ms |
11888 KB |
Output is correct |
39 |
Correct |
63 ms |
11628 KB |
Output is correct |
40 |
Correct |
124 ms |
11884 KB |
Output is correct |
41 |
Correct |
76 ms |
11740 KB |
Output is correct |
42 |
Correct |
69 ms |
11692 KB |
Output is correct |
43 |
Correct |
102 ms |
11860 KB |
Output is correct |
44 |
Correct |
59 ms |
11688 KB |
Output is correct |
45 |
Correct |
69 ms |
11716 KB |
Output is correct |
46 |
Correct |
63 ms |
11676 KB |
Output is correct |
47 |
Correct |
66 ms |
11660 KB |
Output is correct |
48 |
Correct |
63 ms |
11596 KB |
Output is correct |
49 |
Correct |
82 ms |
11708 KB |
Output is correct |
50 |
Correct |
65 ms |
11580 KB |
Output is correct |
51 |
Correct |
87 ms |
11724 KB |
Output is correct |
52 |
Correct |
90 ms |
11856 KB |
Output is correct |
53 |
Correct |
63 ms |
11728 KB |
Output is correct |
54 |
Correct |
80 ms |
11736 KB |
Output is correct |
55 |
Correct |
82 ms |
11756 KB |
Output is correct |
56 |
Correct |
68 ms |
11672 KB |
Output is correct |
57 |
Correct |
59 ms |
11668 KB |
Output is correct |
58 |
Correct |
76 ms |
11628 KB |
Output is correct |