Submission #362142

# Submission time Handle Problem Language Result Execution time Memory
362142 2021-02-01T20:26:51 Z Sorting Carnival Tickets (IOI20_tickets) C++17
100 / 100
868 ms 85156 KB
#include "tickets.h"
#include <vector>
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N = 1500 + 3;

vector<vector<int>> x, answer;
int n, m, k, idx[N];
array<int, 2> arr[N];

void clear(){

}

ll solve(){
    clear();

    ll ans = 0;
    priority_queue<array<int, 2>> pq;
    int add = n * k / 2;
    for(int i = 0; i < n; ++i){
        idx[i] = 0;
        pq.push({-x[i][0] - x[i][m - k], i});
    }

    while(add--){
        auto [score, i] = pq.top();
        pq.pop();

        idx[i]++;
        if(idx[i] < k)
            pq.push({-x[i][idx[i]] - x[i][m - k + idx[i]], i});
    }

    for(int i = 0; i < n; ++i){
        for(int j = 0; j < idx[i]; ++j){
            answer[i][j] = 1;
            ans -= x[i][j];
        }
        for(int j = idx[i] + m - k; j < m; ++j){
            answer[i][j] = 2;
            ans += x[i][j];
        }
    }

    int cnt_1 = 0, cnt_2 = 0;
    for(int i = 0; i < n; ++i){
        for(int j = 0; j < m; ++j){
            if(answer[i][j] == -1) continue;

            if(answer[i][j] == 1){
                answer[i][j] = cnt_1;
                cnt_1 = (cnt_1 + 1) % k;
                cnt_2 = cnt_1;
            }
            else{
                answer[i][j] = cnt_2;
                cnt_2 = (cnt_2 + 1) % k;
            }
        }
    }

    return ans;
}

long long find_maximum(int _k, vector<vector<int>> _x) {
    k = _k;
    x = _x;
    n = x.size();
    m = x[0].size();
    answer.clear();
    answer.resize(n, vector<int>(m, -1));

    ll ans = solve();
    allocate_tickets(answer);
    return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 2 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 27 ms 3692 KB Output is correct
6 Correct 663 ms 61240 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 2 ms 492 KB Output is correct
5 Correct 25 ms 2924 KB Output is correct
6 Correct 610 ms 65692 KB Output is correct
7 Correct 627 ms 66028 KB Output is correct
8 Correct 3 ms 620 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 364 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 7 ms 1004 KB Output is correct
13 Correct 21 ms 2540 KB Output is correct
14 Correct 26 ms 2540 KB Output is correct
15 Correct 650 ms 66668 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 33 ms 3692 KB Output is correct
6 Correct 6 ms 876 KB Output is correct
7 Correct 9 ms 1132 KB Output is correct
8 Correct 845 ms 84972 KB Output is correct
9 Correct 760 ms 79340 KB Output is correct
10 Correct 783 ms 79452 KB Output is correct
11 Correct 868 ms 85156 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 3 ms 620 KB Output is correct
3 Correct 3 ms 620 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 3 ms 620 KB Output is correct
6 Correct 3 ms 620 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 2 ms 492 KB Output is correct
10 Correct 3 ms 620 KB Output is correct
11 Correct 4 ms 620 KB Output is correct
12 Correct 4 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 3 ms 620 KB Output is correct
3 Correct 3 ms 620 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 3 ms 620 KB Output is correct
6 Correct 3 ms 620 KB Output is correct
7 Correct 1 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 2 ms 492 KB Output is correct
10 Correct 3 ms 620 KB Output is correct
11 Correct 4 ms 620 KB Output is correct
12 Correct 4 ms 620 KB Output is correct
13 Correct 27 ms 3712 KB Output is correct
14 Correct 27 ms 3692 KB Output is correct
15 Correct 30 ms 3692 KB Output is correct
16 Correct 33 ms 3692 KB Output is correct
17 Correct 1 ms 364 KB Output is correct
18 Correct 3 ms 620 KB Output is correct
19 Correct 2 ms 492 KB Output is correct
20 Correct 27 ms 3052 KB Output is correct
21 Correct 29 ms 3564 KB Output is correct
22 Correct 28 ms 3052 KB Output is correct
23 Correct 30 ms 3564 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 2 ms 1024 KB Output is correct
7 Correct 0 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 3 ms 620 KB Output is correct
11 Correct 27 ms 3692 KB Output is correct
12 Correct 663 ms 61240 KB Output is correct
13 Correct 1 ms 364 KB Output is correct
14 Correct 1 ms 364 KB Output is correct
15 Correct 1 ms 364 KB Output is correct
16 Correct 2 ms 492 KB Output is correct
17 Correct 25 ms 2924 KB Output is correct
18 Correct 610 ms 65692 KB Output is correct
19 Correct 627 ms 66028 KB Output is correct
20 Correct 3 ms 620 KB Output is correct
21 Correct 1 ms 364 KB Output is correct
22 Correct 1 ms 364 KB Output is correct
23 Correct 1 ms 364 KB Output is correct
24 Correct 7 ms 1004 KB Output is correct
25 Correct 21 ms 2540 KB Output is correct
26 Correct 26 ms 2540 KB Output is correct
27 Correct 650 ms 66668 KB Output is correct
28 Correct 1 ms 364 KB Output is correct
29 Correct 1 ms 364 KB Output is correct
30 Correct 1 ms 364 KB Output is correct
31 Correct 3 ms 620 KB Output is correct
32 Correct 33 ms 3692 KB Output is correct
33 Correct 6 ms 876 KB Output is correct
34 Correct 9 ms 1132 KB Output is correct
35 Correct 845 ms 84972 KB Output is correct
36 Correct 760 ms 79340 KB Output is correct
37 Correct 783 ms 79452 KB Output is correct
38 Correct 868 ms 85156 KB Output is correct
39 Correct 1 ms 364 KB Output is correct
40 Correct 3 ms 620 KB Output is correct
41 Correct 3 ms 620 KB Output is correct
42 Correct 3 ms 620 KB Output is correct
43 Correct 3 ms 620 KB Output is correct
44 Correct 3 ms 620 KB Output is correct
45 Correct 1 ms 364 KB Output is correct
46 Correct 1 ms 364 KB Output is correct
47 Correct 2 ms 492 KB Output is correct
48 Correct 3 ms 620 KB Output is correct
49 Correct 4 ms 620 KB Output is correct
50 Correct 4 ms 620 KB Output is correct
51 Correct 27 ms 3712 KB Output is correct
52 Correct 27 ms 3692 KB Output is correct
53 Correct 30 ms 3692 KB Output is correct
54 Correct 33 ms 3692 KB Output is correct
55 Correct 1 ms 364 KB Output is correct
56 Correct 3 ms 620 KB Output is correct
57 Correct 2 ms 492 KB Output is correct
58 Correct 27 ms 3052 KB Output is correct
59 Correct 29 ms 3564 KB Output is correct
60 Correct 28 ms 3052 KB Output is correct
61 Correct 30 ms 3564 KB Output is correct
62 Correct 74 ms 9452 KB Output is correct
63 Correct 74 ms 9580 KB Output is correct
64 Correct 91 ms 9708 KB Output is correct
65 Correct 329 ms 37100 KB Output is correct
66 Correct 370 ms 37868 KB Output is correct
67 Correct 7 ms 1132 KB Output is correct
68 Correct 5 ms 876 KB Output is correct
69 Correct 670 ms 82028 KB Output is correct
70 Correct 736 ms 83180 KB Output is correct
71 Correct 826 ms 85100 KB Output is correct
72 Correct 704 ms 69228 KB Output is correct
73 Correct 777 ms 81900 KB Output is correct
74 Correct 660 ms 67972 KB Output is correct
75 Correct 722 ms 80748 KB Output is correct