Submission #429062

# Submission time Handle Problem Language Result Execution time Memory
429062 2021-06-15T17:07:00 Z jovan_b Carnival Tickets (IOI20_tickets) C++17
27 / 100
732 ms 56012 KB
#include "tickets.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1500;

using ll = long long;

int gde[MAXN+5];
int levo[MAXN+5];
int desno[MAXN+5];

long long find_maximum(int k, std::vector<std::vector<int>> x) {
	int n = x.size();
	int m = x[0].size();
	std::vector<std::vector<int>> answer;
	for (int i = 0; i < n; i++) {
		std::vector<int> row(m);
		for (int j = 0; j < m; j++) {
            row[j] = -1;
		}
		answer.push_back(row);
	}
	ll res = 0;
	priority_queue <pair <int, int>> pq;
	for(int i=0; i<n; i++){
        for(int j=0; j<k; j++) res -= x[i][j];
        gde[i] = k-1;
        pq.push({x[i][m-1] + x[i][gde[i]], i});
	}
	int turns = n*k/2;
	while(turns--){
        pair <int, int> pr = pq.top();
        res += pr.first;
        int i = pr.second;
        pq.pop();
        gde[i]--;
        if(gde[i] >= 0) pq.push({x[i][m-1-(k-1-gde[i])] + x[i][gde[i]], i});
	}
	set <pair <int, int>> q;
	for(int i=0; i<n; i++){
        levo[i] = gde[i];
        desno[i] = m-1;
        q.insert({levo[i], i});
	}
	for(int turn=0; turn<k; turn++){
        vector <pair <int, int>> posle;
        int times = n/2;
        while(times--){
            int i = q.begin()->second;
            q.erase(q.begin());
            answer[i][desno[i]] = turn;
            posle.push_back({levo[i], i});
        }
        times = n/2;
        while(times--){
            int i = q.rbegin()->second;
            q.erase(*q.rbegin());
            answer[i][levo[i]] = turn;
            levo[i]--;
            posle.push_back({levo[i], i});
        }
        for(auto c : posle) q.insert(c);
	}
	allocate_tickets(answer);
	return res;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 296 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 3 ms 712 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 300 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 4 ms 496 KB Output is correct
5 Correct 34 ms 3228 KB Output is correct
6 Correct 732 ms 56012 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB There is no ticket of color 0 on day 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB There is no ticket of color 1 on day 1
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB There is no ticket of color 1 on day 1
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB There is no ticket of color 1 on day 1
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 296 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 3 ms 712 KB Output is correct
7 Correct 1 ms 300 KB Output is correct
8 Correct 1 ms 296 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 4 ms 496 KB Output is correct
11 Correct 34 ms 3228 KB Output is correct
12 Correct 732 ms 56012 KB Output is correct
13 Incorrect 1 ms 204 KB There is no ticket of color 0 on day 0
14 Halted 0 ms 0 KB -