Submission #838719

# Submission time Handle Problem Language Result Execution time Memory
838719 2023-08-27T16:00:41 Z mychecksedad Carnival Tickets (IOI20_tickets) C++17
27 / 100
416 ms 51368 KB
#include<tickets.h>
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define mod1 (1000000000+7)
#define mod (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
const int N = 1e6+100, M = 1e5+10, K = 18;


// void allocate_tickets( std::vector<std::vector<int>> _x);
long long find_maximum(int k, vector<vector<int>> d){
	ll ans = 0;
	int n = d.size(), m = d[0].size();
	vector<vector<int>> A(n, vector<int>(m, -1));
	vector<array<int, 2>> a;
	set<array<int, 3>> big, small;
	vector<int> H(n), L(N);

	for(int i = 0; i < n; ++i){
		H[i] = k;
		for(int j = m - k; j < m; ++j){
			ans += d[i][j];
			a.pb({-d[i][j]-d[i][j-(m-k)], i});
		}
	}

	sort(all(a), greater<array<int, 2>>());


	int c = 0;
	for(int i = 0; i < n*k/2; ++i, ++c){
		ans += a[c][0];
		H[a[c][1]]--;
	}	
	for(int i = 0; i < n; ++i) L[i] = k - H[i];
	
	for(int i = 0; i < n; ++i){
		if(H[i])
			big.insert({-d[i][m - k], i, m - 1});
		if(L[i])
			small.insert({-d[i][0], i, 0});
	}

	for(int turn = 0; turn < k; ++turn){
		vector<bool> used(n);
		set<array<int, 3>> bt, st;
		int c = 0;
		for(auto x: big){
			if(used[x[1]] || c == n / 2){
				bt.insert(x);
				continue;
			}
			used[x[1]] = 1;
			A[x[1]][x[2]] = turn;
			H[x[1]]--;
			c++;
			if(H[x[1]] > 0)
				bt.insert({d[x[1]][m - H[x[1]]], x[1], m - H[x[1]]});
		}
		c = 0;
		for(auto x: small){
			if(used[x[1]] || c == n / 2){
				st.insert(x);
				continue;
			}
			used[x[1]] = 1;
			A[x[1]][x[2]] = turn;
			L[x[1]]--;
			c++;
			if(L[x[1]] > 0)
				st.insert({d[x[1]][L[x[1]]], x[1], L[x[1]]});
		}
		big.swap(bt);
		small.swap(st);
	}

	allocate_tickets(A);
	return ans;
}

# Verdict Execution time Memory Grader output
1 Correct 2 ms 4180 KB Output is correct
2 Correct 2 ms 4180 KB Output is correct
3 Correct 2 ms 4180 KB Output is correct
4 Correct 2 ms 4180 KB Output is correct
5 Correct 2 ms 4308 KB Output is correct
6 Correct 4 ms 4564 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4180 KB Output is correct
2 Correct 2 ms 4180 KB Output is correct
3 Correct 2 ms 4180 KB Output is correct
4 Correct 3 ms 4308 KB Output is correct
5 Correct 20 ms 5972 KB Output is correct
6 Correct 416 ms 51368 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 4180 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 2 ms 4180 KB There is no ticket of color 1 on day 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 4180 KB There is no ticket of color 1 on day 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 4180 KB There is no ticket of color 1 on day 0
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4180 KB Output is correct
2 Correct 2 ms 4180 KB Output is correct
3 Correct 2 ms 4180 KB Output is correct
4 Correct 2 ms 4180 KB Output is correct
5 Correct 2 ms 4308 KB Output is correct
6 Correct 4 ms 4564 KB Output is correct
7 Correct 2 ms 4180 KB Output is correct
8 Correct 2 ms 4180 KB Output is correct
9 Correct 2 ms 4180 KB Output is correct
10 Correct 3 ms 4308 KB Output is correct
11 Correct 20 ms 5972 KB Output is correct
12 Correct 416 ms 51368 KB Output is correct
13 Incorrect 2 ms 4180 KB There is no ticket of color 0 on day 0
14 Halted 0 ms 0 KB -