Task: | Knightsbridge Rises |
Sender: | Hannes Ihalainen |
Submission time: | 2017-10-31 19:39:05 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.04 s | details |
#4 | ACCEPTED | 0.05 s | details |
#5 | ACCEPTED | 0.04 s | details |
#6 | ACCEPTED | 0.04 s | details |
#7 | ACCEPTED | 0.04 s | details |
#8 | ACCEPTED | 0.04 s | details |
#9 | ACCEPTED | 0.03 s | details |
#10 | ACCEPTED | 0.04 s | details |
#11 | ACCEPTED | 0.04 s | details |
#12 | ACCEPTED | 0.04 s | details |
#13 | ACCEPTED | 0.05 s | details |
#14 | ACCEPTED | 0.04 s | details |
#15 | ACCEPTED | 0.03 s | details |
#16 | ACCEPTED | 0.05 s | details |
#17 | ACCEPTED | 0.04 s | details |
#18 | ACCEPTED | 0.05 s | details |
#19 | ACCEPTED | 0.03 s | details |
#20 | ACCEPTED | 0.04 s | details |
#21 | ACCEPTED | 0.06 s | details |
#22 | ACCEPTED | 0.04 s | details |
#23 | ACCEPTED | 0.04 s | details |
#24 | ACCEPTED | 0.04 s | details |
#25 | ACCEPTED | 0.05 s | details |
#26 | ACCEPTED | 0.05 s | details |
#27 | ACCEPTED | 0.02 s | details |
#28 | ACCEPTED | 0.04 s | details |
#29 | ACCEPTED | 0.04 s | details |
#30 | ACCEPTED | 0.03 s | details |
#31 | ACCEPTED | 0.04 s | details |
#32 | ACCEPTED | 0.04 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:74:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0; j < piles[min_ind].size(); ++j) { ^
Code
#include <iostream> #include <vector> #include <algorithm> #include <utility> const int inf = 1e9; int main() { int n; std::cin >> n; // weight, carry capacity, index std::vector<std::pair<int, std::pair<int, int>>> cranes; for (int i = 0; i < n; ++i) { int weight, carry; std::cin >> weight >> carry; cranes.push_back({weight, {carry, i}}); } std::sort(cranes.begin(), cranes.end()); int m; std::cin >> m; std::vector<std::vector<int>> piles (m); std::vector<int> maximums (m, 0); std::vector<bool> used (m, 0); std::vector<int> needed (m); for (int i = 0; i < m; ++i) { std::cin >> needed[i]; } for (int i = 0; i < n; ++i) { int low = cranes[i].first; int high = cranes[i].second.first; int index = cranes[i].second.second; int min_ind = -1; int min_weight = inf; for (int j = 0; j < m; ++j) { if ( (maximums[j] >= low) && (maximums[j] < min_weight) ) { min_weight = maximums[j]; min_ind = j; } } if ( (min_ind != -1) && (high > maximums[min_ind]) ) { maximums[min_ind] = high; piles[min_ind].push_back(index); } } bool can = true; for (int i = 0; i < m; ++i) { int min_ind = -1; int min_weight = inf; for (int j = 0; j < m; ++j) { if ((!used[j]) && (maximums[j] >= needed[i]) && (maximums[j] < min_weight)) { min_ind = j; min_weight = maximums[j]; } } if (min_ind != -1) { used[min_ind] = true; } else { can = false; break; } } if (can) { for (int i = 0; i < m; ++i) { used[i] = false; } for (int i = 0; i < m; ++i) { int min_ind = -1; int min_weight = inf; for (int j = 0; j < m; ++j) { if ((!used[j]) && (maximums[j] >= needed[i]) && (maximums[j] < min_weight)) { min_ind = j; min_weight = maximums[j]; } } used[min_ind] = true; for (int j = 0; j < piles[min_ind].size(); ++j) { std::cout << (piles[min_ind][j] + 1) << ' '; } std::cout << '\n'; } } else { std::cout << "impossible\n"; } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100 1661 4448 0 1 6482 8949 0 2456 ... |
correct output |
---|
4 22 71 6 1 62 23 35 18 ... |
user output |
---|
50 44 66 34 82 7 37 73 39 99 9... |
Test 2
Verdict: ACCEPTED
input |
---|
100 5358 5772 0 3602 6408 8742 0 848 ... |
correct output |
---|
2 24 38 4 26 49 89 ... |
user output |
---|
68 28 18 24 84 47 37 34 10 12 52 54 71 67 92 16 90 48 96 61 35 27 9 25 66 98 60 26 94 81 19 79 21 22 4 74 40 82 51 39 87 3 ... |
Test 3
Verdict: ACCEPTED
input |
---|
100 6080 9507 0 184 7437 9307 0 3112 ... |
correct output |
---|
10 23 61 4 8 9 54 85 6 ... |
user output |
---|
82 68 10 4 98 53 47 83 25 15 3... |
Test 4
Verdict: ACCEPTED
input |
---|
100 7910 10358 0 3180 2026 4211 0 3336 ... |
correct output |
---|
6 37 12 7 28 33 24 83 2 ... |
user output |
---|
74 62 68 28 88 57 56 18 58 48 30 47 29 19 87 44 16 50 6 4 37 25 38 46 42 92 8 65 85 99 72 10 100 32 54 3 63 61 23 ... |
Test 5
Verdict: ACCEPTED
input |
---|
100 1065 4365 0 534 1035 4912 0 1717 ... |
correct output |
---|
60 51 15 64 91 11 56 17 29 34 27 16 1 67 ... |
user output |
---|
40 34 47 27 49 12 90 37 61 81 84 88 25 83 7 16 72 1 69 45 48 66 68 23 67 41 73 ... |
Test 6
Verdict: ACCEPTED
input |
---|
100 5602 7097 0 1116 3686 4242 0 2388 ... |
correct output |
---|
70 9 13 2 4 14 27 79 5 6 ... |
user output |
---|
60 36 45 25 99 59 86 22 26 46 12 58 43 37 1 91 24 8 ... |
Test 7
Verdict: ACCEPTED
input |
---|
100 735 1312 2742 5848 5964 12870 0 5587 ... |
correct output |
---|
20 24 40 4 64 ... |
user output |
---|
52 23 16 58 51 28 17 49 42 80 54 82 76 69 ... |
Test 8
Verdict: ACCEPTED
input |
---|
100 6947 7009 3601 6490 4735 5953 0 3198 ... |
correct output |
---|
72 41 6 4 8 28 25 20 ... |
user output |
---|
4 62 6 10 38 16 8 36 89 95 72 7 52 84 ... |
Test 9
Verdict: ACCEPTED
input |
---|
100 8177 11184 928 2996 514 4494 0 3270 ... |
correct output |
---|
4 8 12 19 62 36 80 9 25 70 ... |
user output |
---|
88 46 2 36 84 80 26 54 30 49 50 68 97 22 44 92 42 63 23 ... |
Test 10
Verdict: ACCEPTED
input |
---|
100 6317 6616 2524 4177 1404 3977 0 2066 ... |
correct output |
---|
16 10 60 38 15 34 20 18 52 5 96 9 ... |
user output |
---|
40 100 71 43 92 33 5 65 80 24 54 25 48 59 58 74 64 93 41 ... |
Test 11
Verdict: ACCEPTED
input |
---|
100 8329 10142 1875 3641 4458 4638 0 2442 ... |
correct output |
---|
100 4 48 10 79 20 23 24 51 ... |
user output |
---|
52 72 99 92 16 90 12 50 84 51 45 ... |
Test 12
Verdict: ACCEPTED
input |
---|
100 806 3397 8245 10372 5982 7437 0 1107 ... |
correct output |
---|
4 56 57 58 19 16 44 63 48 11 ... |
user output |
---|
88 37 60 14 43 71 5 2 72 48 67 93 74 24 84 70 ... |
Test 13
Verdict: ACCEPTED
input |
---|
100 8699 11259 4869 8238 8967 10472 0 2965 ... |
correct output |
---|
impossible |
user output |
---|
impossible |
Test 14
Verdict: ACCEPTED
input |
---|
100 7759 8968 4287 8194 6041 9351 0 602 ... |
correct output |
---|
68 19 24 32 12 16 ... |
user output |
---|
52 30 90 65 42 12 69 62 60 83 88 56 84 53 21 22 71 ... |
Test 15
Verdict: ACCEPTED
input |
---|
100 8204 10903 3919 4950 6072 7198 0 958 ... |
correct output |
---|
100 91 18 36 27 15 28 10 64 46 52 50 79 ... |
user output |
---|
56 16 75 57 97 39 100 10 9 22 32 69 91 99 72 46 73 62 31 80 33 70 89 41 ... |
Test 16
Verdict: ACCEPTED
input |
---|
100 8522 9556 8146 10973 7621 9479 0 1728 ... |
correct output |
---|
44 51 74 10 4 76 77 8 56 19 7 35 26 66 2 ... |
user output |
---|
100 92 61 91 10 83 23 36 16 80 39 37 12 19 76 77 70 59 3 41 ... |
Test 17
Verdict: ACCEPTED
input |
---|
100 10008 12941 7002 9420 8150 11042 0 3970 ... |
correct output |
---|
4 13 22 69 43 12 15 95 20 81 77 59 1 36 62 2 34 28 5 9 ... |
user output |
---|
16 76 8 85 62 11 22 53 45 17 9... |
Test 18
Verdict: ACCEPTED
input |
---|
100 7356 10145 2971 5440 4831 8014 0 3699 ... |
correct output |
---|
8 2 3 72 5 27 23 9 16 83 54 20 18 14 7 40 13 75 87 ... |
user output |
---|
36 12 8 18 83 53 69 46 94 99 2... |
Test 19
Verdict: ACCEPTED
input |
---|
100 7359 15305 5351 11786 6953 9000 0 3349 ... |
correct output |
---|
8 11 16 22 24 26 28 56 2 ... |
user output |
---|
72 64 74 35 57 96 27 87 8 30 37 89 95 68 55 50 48 52 34 49 10 ... |
Test 20
Verdict: ACCEPTED
input |
---|
100 9267 11620 5731 9781 2532 10040 0 7355 ... |
correct output |
---|
80 17 4 32 29 5 68 27 8 3 ... |
user output |
---|
56 4 35 38 8 70 95 49 75 14 84 78 34 13 73 76 66 18 27 85 68 30 47 ... |
Test 21
Verdict: ACCEPTED
input |
---|
100 1923 9590 1149 3602 4809 7818 0 4142 ... |
correct output |
---|
36 15 16 10 44 7 76 85 72 ... |
user output |
---|
36 77 30 16 9 67 89 45 12 78 85 84 55 39 76 70 14 27 ... |
Test 22
Verdict: ACCEPTED
input |
---|
100 534 3023 4994 11351 2653 7810 0 4702 ... |
correct output |
---|
8 17 44 64 7 72 10 12 2 ... |
user output |
---|
80 92 46 10 12 98 51 69 90 4 77 27 55 36 48 21 86 96 44 73 14 ... |
Test 23
Verdict: ACCEPTED
input |
---|
100 7080 13273 10948 18778 2405 7222 0 2276 ... |
correct output |
---|
20 96 1 28 9 86 36 48 ... |
user output |
---|
100 72 20 11 77 76 87 57 98 3 1 46 52 26 28 36 18 ... |
Test 24
Verdict: ACCEPTED
input |
---|
100 16 42 66 71 38 43 0 7 ... |
correct output |
---|
4 9 1 5 8 81 13 25 12 47 45 21 33 20 62 69 49 85 |
user output |
---|
16 84 56 80 20 60 86 30 7 59 6... |
Test 25
Verdict: ACCEPTED
input |
---|
100 1 23 51 51 61 67 0 1 ... |
correct output |
---|
53 65 37 4 93 9 46 24 17 69 30 33 73 89 10 35 49 |
user output |
---|
8 36 44 88 76 72 53 17 69 30 4... |
Test 26
Verdict: ACCEPTED
input |
---|
100 2 26 16 20 21 23 0 7 ... |
correct output |
---|
4 1 23 85 20 38 33 21 8 95 65 61 13 12 77 93 29 24 94 41 57 9 ... |
user output |
---|
40 92 64 88 52 32 1 37 93 29 1... |
Test 27
Verdict: ACCEPTED
input |
---|
100 19 47 49 53 44 50 0 2 ... |
correct output |
---|
20 61 1 5 8 21 9 29 12 43 89 77 16 49 17 73 4 13 53 33 ... |
user output |
---|
96 64 100 44 87 63 89 1 73 4 94 52 68 49 65 53 57 76 48 16 12 61 97 17 3 5 72 24 20 92 21 25 93 29 33 40 28 80 84 8 60 43 78 7 58 37... |
Test 28
Verdict: ACCEPTED
input |
---|
100 0 26 36 44 41 41 0 2 ... |
correct output |
---|
1 5 35 16 17 25 89 20 21 29 53 24 33 37 77 48 45 65 57 ... |
user output |
---|
76 40 68 72 1 73 37 89 4 96 80 21 61 41 65 77 32 36 44 60 48 17 13 29 55 35 ... |
Test 29
Verdict: ACCEPTED
input |
---|
100 38 59 0 4 16 23 0 10 ... |
correct output |
---|
56 3 70 55 1 2 27 45 86 9 16 31 50 21 96 41 91 11 12 43 67 10 85 42 34 54 18 ... |
user output |
---|
32 20 16 3 70 85 50 46 44 64 88 43 45 79 19 22 49 59 ... |
Test 30
Verdict: ACCEPTED
input |
---|
100 19 37 58 68 11 18 0 4 ... |
correct output |
---|
76 1 61 12 69 39 54 11 59 36 19 58 9 77 5 16 6 21 57 91 10 55 46 51 23 31 ... |
user output |
---|
88 20 96 43 70 29 71 35 79 18 42 100 28 56 6 87 54 67 30 77 ... |
Test 31
Verdict: ACCEPTED
input |
---|
100 50 73 29 39 35 42 0 10 ... |
correct output |
---|
76 66 26 96 17 53 2 5 45 74 36 51 11 41 4 31 23 46 34 22 8 91 61 3 86 65 ... |
user output |
---|
40 68 16 55 66 90 45 93 41 39 48 64 84 31 61 81 49 77 63 28 12 72 36 17 99 2 75 26 22 2... |
Test 32
Verdict: ACCEPTED
input |
---|
100 14 29 8 11 7 11 0 10 ... |
correct output |
---|
76 37 17 85 75 16 11 42 56 21 25 86 36 26 6 63 4 93 87 27 79 66 ... |
user output |
---|
24 12 18 14 47 1 71 13 79 42 100 88 32 50 93 78 61 38 6 52 20 64 56 10 59 11 86 60 8 36 65 87 82 51 99 34 89 1... |