Task: | HDRF |
Sender: | ollpu |
Submission time: | 2017-03-09 13:47:55 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 100 |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.04 s | details |
#3 | ACCEPTED | 0.03 s | details |
#4 | ACCEPTED | 0.04 s | details |
#5 | ACCEPTED | 0.03 s | details |
#6 | ACCEPTED | 0.04 s | details |
#7 | ACCEPTED | 0.05 s | details |
#8 | ACCEPTED | 0.04 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.04 s | details |
#11 | ACCEPTED | 0.03 s | details |
#12 | ACCEPTED | 0.04 s | details |
#13 | ACCEPTED | 0.04 s | details |
#14 | ACCEPTED | 0.05 s | details |
#15 | ACCEPTED | 0.04 s | details |
#16 | ACCEPTED | 0.04 s | details |
#17 | ACCEPTED | 0.05 s | details |
#18 | ACCEPTED | 0.03 s | details |
#19 | ACCEPTED | 0.03 s | details |
#20 | ACCEPTED | 0.05 s | details |
#21 | ACCEPTED | 0.04 s | details |
#22 | ACCEPTED | 0.03 s | details |
#23 | ACCEPTED | 0.04 s | details |
#24 | ACCEPTED | 0.03 s | details |
#25 | ACCEPTED | 0.04 s | details |
#26 | ACCEPTED | 0.04 s | details |
#27 | ACCEPTED | 0.04 s | details |
#28 | ACCEPTED | 0.04 s | details |
#29 | ACCEPTED | 0.04 s | details |
#30 | ACCEPTED | 0.04 s | details |
#31 | ACCEPTED | 0.04 s | details |
#32 | ACCEPTED | 0.04 s | details |
#33 | ACCEPTED | 0.04 s | details |
#34 | ACCEPTED | 0.04 s | details |
#35 | ACCEPTED | 0.03 s | details |
#36 | ACCEPTED | 0.03 s | details |
#37 | ACCEPTED | 0.03 s | details |
#38 | ACCEPTED | 0.05 s | details |
#39 | ACCEPTED | 0.04 s | details |
#40 | ACCEPTED | 0.05 s | details |
#41 | ACCEPTED | 0.03 s | details |
#42 | ACCEPTED | 0.04 s | details |
#43 | ACCEPTED | 0.04 s | details |
#44 | ACCEPTED | 0.05 s | details |
#45 | ACCEPTED | 0.04 s | details |
#46 | ACCEPTED | 0.03 s | details |
#47 | ACCEPTED | 0.04 s | details |
#48 | ACCEPTED | 0.03 s | details |
#49 | ACCEPTED | 0.03 s | details |
#50 | ACCEPTED | 0.05 s | details |
#51 | ACCEPTED | 0.04 s | details |
#52 | ACCEPTED | 0.06 s | details |
#53 | ACCEPTED | 0.13 s | details |
#54 | ACCEPTED | 0.10 s | details |
#55 | ACCEPTED | 0.10 s | details |
#56 | ACCEPTED | 0.11 s | details |
#57 | ACCEPTED | 0.12 s | details |
#58 | ACCEPTED | 0.11 s | details |
#59 | ACCEPTED | 0.09 s | details |
#60 | ACCEPTED | 0.12 s | details |
#61 | ACCEPTED | 0.10 s | details |
#62 | ACCEPTED | 0.11 s | details |
#63 | ACCEPTED | 0.11 s | details |
Compiler report
input/code.cpp: In function 'void h(int)': input/code.cpp:11:7: warning: unused variable 'osspci' [-Wunused-variable] int osspci = ++spci; ^
Code
#include <iostream> #include <vector> using namespace std; const int N = 1<<17; int mv[N<<1], mi[N<<1], rbegin[N], rend[N]; int spci; int p[101010], v[101010]; vector<int> c[101010]; void h(int i) { int osspci = ++spci; mi[N+spci] = i; mv[N+spci] = v[i]; rbegin[i] = spci; for (int j : c[i]) { h(j); } rend[i] = spci; } void stpull(int i) { if (mi[i*2+1] && mv[i*2+1] < mv[i*2]) { mv[i] = mv[i*2+1]; mi[i] = mi[i*2+1]; } else { mv[i] = mv[i*2]; mi[i] = mi[i*2]; } } void streset(int i) { i += N; mv[i] = 2e9+1; while (i /= 2) { stpull(i); } } int stmidx(int a, int b) { a += N; b += N; int cmv = 2e9, cmi = -1; while (a <= b) { if (a % 2 == 1) { if (mv[a] < cmv) cmv = mv[a], cmi = mi[a]; a++; } if (b % 2 == 0) { if (mv[b] < cmv) cmv = mv[b], cmi = mi[b]; b--; } a /= 2; b /= 2; } return cmi; } void y(int i) { int j = stmidx(rbegin[i]+1, rend[i]); while (j != -1) { y(j); j = stmidx(rbegin[i]+1, rend[i]); } cout << i+1 << " "; streset(rbegin[i]); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 1; i < n; ++i) { cin >> p[i]; p[i]--; c[p[i]].push_back(i); } for (int i = 0; i < n; ++i) { cin >> v[i]; } h(0); for (int i = N-1; i; --i) { stpull(i); } y(0); cout << endl; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
2 1 1 2 |
correct output |
---|
2 1 |
user output |
---|
2 1 |
Test 2
Verdict: ACCEPTED
input |
---|
100 85 42 34 7 48 48 63 90 37 80 2... |
correct output |
---|
95 2 85 65 59 8 36 24 82 71 61... |
user output |
---|
95 2 85 65 59 8 36 24 82 71 61... |
Test 3
Verdict: ACCEPTED
input |
---|
100 14 35 99 80 25 28 11 70 24 51 ... |
correct output |
---|
72 77 43 9 93 49 70 13 69 66 7... |
user output |
---|
72 77 43 9 93 49 70 13 69 66 7... |
Test 4
Verdict: ACCEPTED
input |
---|
100 60 55 18 87 58 26 35 17 48 9 8... |
correct output |
---|
89 77 39 93 49 64 56 38 74 80 ... |
user output |
---|
89 77 39 93 49 64 56 38 74 80 ... |
Test 5
Verdict: ACCEPTED
input |
---|
100 57 68 23 81 85 54 62 73 100 10... |
correct output |
---|
10 11 100 40 58 86 67 28 26 51... |
user output |
---|
10 11 100 40 58 86 67 28 26 51... |
Test 6
Verdict: ACCEPTED
input |
---|
100 33 22 18 33 26 31 57 23 93 97 ... |
correct output |
---|
60 100 4 10 76 50 71 94 17 20 ... |
user output |
---|
60 100 4 10 76 50 71 94 17 20 ... |
Test 7
Verdict: ACCEPTED
input |
---|
200 87 30 52 56 164 149 193 82 188... |
correct output |
---|
191 178 85 36 55 35 43 3 30 97... |
user output |
---|
191 178 85 36 55 35 43 3 30 97... |
Test 8
Verdict: ACCEPTED
input |
---|
200 3 59 148 66 188 81 172 152 170... |
correct output |
---|
115 121 107 74 151 91 80 118 2... |
user output |
---|
115 121 107 74 151 91 80 118 2... |
Test 9
Verdict: ACCEPTED
input |
---|
5 4 4 1 1 3 5 2 1 4 |
correct output |
---|
3 2 4 5 1 |
user output |
---|
3 2 4 5 1 |
Test 10
Verdict: ACCEPTED
input |
---|
200 158 82 152 26 46 191 100 180 2... |
correct output |
---|
13 181 18 163 24 130 2 158 184... |
user output |
---|
13 181 18 163 24 130 2 158 184... |
Test 11
Verdict: ACCEPTED
input |
---|
200 197 134 27 109 102 77 30 71 14... |
correct output |
---|
112 144 12 131 64 137 175 117 ... |
user output |
---|
112 144 12 131 64 137 175 117 ... |
Test 12
Verdict: ACCEPTED
input |
---|
200 101 78 128 55 9 78 35 87 56 6 ... |
correct output |
---|
197 138 177 126 68 147 145 73 ... |
user output |
---|
197 138 177 126 68 147 145 73 ... |
Test 13
Verdict: ACCEPTED
input |
---|
300 259 151 284 164 193 153 20 153... |
correct output |
---|
63 240 115 257 206 66 42 113 2... |
user output |
---|
63 240 115 257 206 66 42 113 2... |
Test 14
Verdict: ACCEPTED
input |
---|
300 127 280 20 1 186 215 59 101 25... |
correct output |
---|
10 257 179 56 174 135 42 169 2... |
user output |
---|
10 257 179 56 174 135 42 169 2... |
Test 15
Verdict: ACCEPTED
input |
---|
300 81 283 149 69 227 39 144 70 28... |
correct output |
---|
207 54 241 126 151 138 118 51 ... |
user output |
---|
207 54 241 126 151 138 118 51 ... |
Test 16
Verdict: ACCEPTED
input |
---|
300 12 265 12 226 196 226 179 185 ... |
correct output |
---|
220 198 242 11 256 125 212 174... |
user output |
---|
220 198 242 11 256 125 212 174... |
Test 17
Verdict: ACCEPTED
input |
---|
300 91 60 106 191 300 27 191 10 28... |
correct output |
---|
247 142 103 178 256 9 154 16 8... |
user output |
---|
247 142 103 178 256 9 154 16 8... |
Test 18
Verdict: ACCEPTED
input |
---|
400 331 329 307 121 72 279 344 213... |
correct output |
---|
346 367 343 332 11 100 44 77 1... |
user output |
---|
346 367 343 332 11 100 44 77 1... |
Test 19
Verdict: ACCEPTED
input |
---|
400 305 158 217 151 291 189 338 26... |
correct output |
---|
114 319 34 163 183 13 175 87 3... |
user output |
---|
114 319 34 163 183 13 175 87 3... |
Test 20
Verdict: ACCEPTED
input |
---|
400 354 21 151 275 188 159 154 328... |
correct output |
---|
232 184 314 111 112 227 393 5 ... |
user output |
---|
232 184 314 111 112 227 393 5 ... |
Test 21
Verdict: ACCEPTED
input |
---|
400 279 376 349 253 29 112 157 110... |
correct output |
---|
131 226 382 240 276 66 136 190... |
user output |
---|
131 226 382 240 276 66 136 190... |
Test 22
Verdict: ACCEPTED
input |
---|
400 370 349 95 374 373 220 187 223... |
correct output |
---|
269 29 129 266 222 394 395 275... |
user output |
---|
269 29 129 266 222 394 395 275... |
Test 23
Verdict: ACCEPTED
input |
---|
500 55 153 455 345 272 93 24 440 4... |
correct output |
---|
69 104 10 499 433 251 337 470 ... |
user output |
---|
69 104 10 499 433 251 337 470 ... |
Test 24
Verdict: ACCEPTED
input |
---|
500 297 2 308 68 421 288 151 117 3... |
correct output |
---|
494 444 419 370 107 261 439 16... |
user output |
---|
494 444 419 370 107 261 439 16... |
Test 25
Verdict: ACCEPTED
input |
---|
500 448 452 207 81 168 458 431 499... |
correct output |
---|
445 117 188 206 156 438 321 13... |
user output |
---|
445 117 188 206 156 438 321 13... |
Test 26
Verdict: ACCEPTED
input |
---|
500 462 261 399 462 328 277 22 319... |
correct output |
---|
73 258 171 245 148 181 110 297... |
user output |
---|
73 258 171 245 148 181 110 297... |
Test 27
Verdict: ACCEPTED
input |
---|
500 344 249 220 264 277 322 90 164... |
correct output |
---|
36 419 257 318 414 355 179 107... |
user output |
---|
36 419 257 318 414 355 179 107... |
Test 28
Verdict: ACCEPTED
input |
---|
600 518 98 32 91 331 69 562 488 31... |
correct output |
---|
438 286 235 368 340 354 338 39... |
user output |
---|
438 286 235 368 340 354 338 39... |
Test 29
Verdict: ACCEPTED
input |
---|
600 107 462 245 156 410 126 414 28... |
correct output |
---|
116 194 344 560 59 337 543 233... |
user output |
---|
116 194 344 560 59 337 543 233... |
Test 30
Verdict: ACCEPTED
input |
---|
600 158 283 486 462 491 341 528 83... |
correct output |
---|
581 301 19 557 374 433 396 278... |
user output |
---|
581 301 19 557 374 433 396 278... |
Test 31
Verdict: ACCEPTED
input |
---|
600 222 353 470 77 426 573 201 36 ... |
correct output |
---|
346 194 423 385 43 161 373 154... |
user output |
---|
346 194 423 385 43 161 373 154... |
Test 32
Verdict: ACCEPTED
input |
---|
600 563 593 20 438 30 525 291 199 ... |
correct output |
---|
275 171 292 426 133 136 285 21... |
user output |
---|
275 171 292 426 133 136 285 21... |
Test 33
Verdict: ACCEPTED
input |
---|
700 578 320 44 92 179 368 524 61 5... |
correct output |
---|
127 21 504 411 619 214 103 230... |
user output |
---|
127 21 504 411 619 214 103 230... |
Test 34
Verdict: ACCEPTED
input |
---|
700 172 367 171 680 68 431 90 465 ... |
correct output |
---|
336 263 10 104 370 572 544 173... |
user output |
---|
336 263 10 104 370 572 544 173... |
Test 35
Verdict: ACCEPTED
input |
---|
700 592 485 633 263 13 500 234 164... |
correct output |
---|
580 329 635 17 574 191 672 280... |
user output |
---|
580 329 635 17 574 191 672 280... |
Test 36
Verdict: ACCEPTED
input |
---|
700 281 479 279 98 11 309 125 538 ... |
correct output |
---|
509 340 171 226 298 317 16 200... |
user output |
---|
509 340 171 226 298 317 16 200... |
Test 37
Verdict: ACCEPTED
input |
---|
700 129 142 226 50 471 445 533 580... |
correct output |
---|
69 96 324 645 208 167 652 431 ... |
user output |
---|
69 96 324 645 208 167 652 431 ... |
Test 38
Verdict: ACCEPTED
input |
---|
800 299 797 180 295 481 278 317 59... |
correct output |
---|
149 251 709 708 421 733 798 24... |
user output |
---|
149 251 709 708 421 733 798 24... |
Test 39
Verdict: ACCEPTED
input |
---|
800 61 61 439 356 175 216 137 325 ... |
correct output |
---|
792 30 44 426 502 39 390 264 3... |
user output |
---|
792 30 44 426 502 39 390 264 3... |
Test 40
Verdict: ACCEPTED
input |
---|
800 310 772 726 621 51 556 795 711... |
correct output |
---|
318 161 733 86 72 271 483 670 ... |
user output |
---|
318 161 733 86 72 271 483 670 ... |
Test 41
Verdict: ACCEPTED
input |
---|
800 24 46 39 770 278 218 657 362 7... |
correct output |
---|
566 303 132 186 47 504 78 356 ... |
user output |
---|
566 303 132 186 47 504 78 356 ... |
Test 42
Verdict: ACCEPTED
input |
---|
800 166 688 171 741 50 312 299 562... |
correct output |
---|
119 186 291 331 48 603 575 162... |
user output |
---|
119 186 291 331 48 603 575 162... |
Test 43
Verdict: ACCEPTED
input |
---|
900 793 286 814 824 112 575 524 54... |
correct output |
---|
40 835 125 199 491 175 355 624... |
user output |
---|
40 835 125 199 491 175 355 624... |
Test 44
Verdict: ACCEPTED
input |
---|
900 86 520 750 436 711 598 268 322... |
correct output |
---|
485 569 557 653 321 748 277 12... |
user output |
---|
485 569 557 653 321 748 277 12... |
Test 45
Verdict: ACCEPTED
input |
---|
900 3 211 842 343 877 364 381 214 ... |
correct output |
---|
335 639 155 81 727 888 416 752... |
user output |
---|
335 639 155 81 727 888 416 752... |
Test 46
Verdict: ACCEPTED
input |
---|
900 685 497 629 389 831 507 57 228... |
correct output |
---|
425 843 342 667 650 180 448 57... |
user output |
---|
425 843 342 667 650 180 448 57... |
Test 47
Verdict: ACCEPTED
input |
---|
900 158 489 267 475 847 29 542 314... |
correct output |
---|
467 792 741 221 125 49 266 887... |
user output |
---|
467 792 741 221 125 49 266 887... |
Test 48
Verdict: ACCEPTED
input |
---|
1000 588 544 250 749 769 456 423 98... |
correct output |
---|
329 138 847 4 250 240 598 786 ... |
user output |
---|
329 138 847 4 250 240 598 786 ... |
Test 49
Verdict: ACCEPTED
input |
---|
1000 998 174 882 645 585 920 107 17... |
correct output |
---|
180 42 847 338 228 166 612 827... |
user output |
---|
180 42 847 338 228 166 612 827... |
Test 50
Verdict: ACCEPTED
input |
---|
1000 805 235 974 610 433 854 903 20... |
correct output |
---|
126 86 658 500 711 231 921 615... |
user output |
---|
126 86 658 500 711 231 921 615... |
Test 51
Verdict: ACCEPTED
input |
---|
1000 598 148 206 204 622 95 358 928... |
correct output |
---|
296 283 952 288 354 907 915 77... |
user output |
---|
296 283 952 288 354 907 915 77... |
Test 52
Verdict: ACCEPTED
input |
---|
1000 490 683 469 136 805 544 246 51... |
correct output |
---|
31 957 649 565 32 475 315 811 ... |
user output |
---|
31 957 649 565 32 475 315 811 ... |
Test 53
Verdict: ACCEPTED
input |
---|
100000 4944 311 69209 28682 87084 233... |
correct output |
---|
78792 8393 13826 63615 17735 1... |
user output |
---|
78792 8393 13826 63615 17735 1... |
Test 54
Verdict: ACCEPTED
input |
---|
100000 34704 25911 59988 65186 29855 ... |
correct output |
---|
44265 90477 6685 27459 49090 5... |
user output |
---|
44265 90477 6685 27459 49090 5... |
Test 55
Verdict: ACCEPTED
input |
---|
100000 32646 4868 34091 77349 54878 6... |
correct output |
---|
69142 94411 68862 51664 42109 ... |
user output |
---|
69142 94411 68862 51664 42109 ... |
Test 56
Verdict: ACCEPTED
input |
---|
100000 50383 56465 63211 49461 99139 ... |
correct output |
---|
95420 71427 95626 67011 82375 ... |
user output |
---|
95420 71427 95626 67011 82375 ... |
Test 57
Verdict: ACCEPTED
input |
---|
100000 94540 25313 57758 7201 51119 4... |
correct output |
---|
79187 70032 63831 69384 51604 ... |
user output |
---|
79187 70032 63831 69384 51604 ... |
Test 58
Verdict: ACCEPTED
input |
---|
100000 14300 28427 96935 52311 13463 ... |
correct output |
---|
5395 57047 3087 83662 90503 24... |
user output |
---|
5395 57047 3087 83662 90503 24... |
Test 59
Verdict: ACCEPTED
input |
---|
100000 14543 20265 6813 97256 2007 32... |
correct output |
---|
16434 64136 27052 56089 37320 ... |
user output |
---|
16434 64136 27052 56089 37320 ... |
Test 60
Verdict: ACCEPTED
input |
---|
100000 87233 22493 10433 86194 52186 ... |
correct output |
---|
62003 25428 66260 57053 59291 ... |
user output |
---|
62003 25428 66260 57053 59291 ... |
Test 61
Verdict: ACCEPTED
input |
---|
100000 83612 41781 34903 19741 34951 ... |
correct output |
---|
29843 44886 70357 52228 52247 ... |
user output |
---|
29843 44886 70357 52228 52247 ... |
Test 62
Verdict: ACCEPTED
input |
---|
99995 1 2 2 4 4 6 6 8 8 10 10 12 12 ... |
correct output |
---|
99995 49998 99994 49997 99993 ... |
user output |
---|
99995 49998 99994 49997 99993 ... |
Test 63
Verdict: ACCEPTED
input |
---|
100000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
100000 99999 99998 99997 99996... |
user output |
---|
100000 99999 99998 99997 99996... |