Submission #304628

# Submission time Handle Problem Language Result Execution time Memory
304628 2020-09-21T15:49:56 Z lolicon Carnival Tickets (IOI20_tickets) C++14
27 / 100
749 ms 70772 KB
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;

#define all(x) begin(x), end(x)

void solve(int n, int k, vector<deque<pair<int, int>>> &T, vector<vector<int>> &ans) {
	int Cnt = 0;
	vector<int> cnt(n);
	vector<bool> type(n);
	vector<pair<int, int>> v;
	for(int i = 0; i < n; i++) {
		int l = T[i].front().first;
		int r = T[i].back().first;
		v.emplace_back(l, i);
		v.emplace_back(r, i);
		v.emplace_back((l + r) / 2, i);
	}
	sort(all(v));
	for(int i = 0; i < 3 * n; i++) {
		cnt[v[i].second]++;
		if(cnt[v[i].second] == 2) {
			Cnt++;
		}
		if(Cnt == n / 2) {
			break;
		}
	}
	for(int i = 0; i < 3 * n; i++) {
		if(cnt[v[i].second] >= 2) // use L
			type[v[i].second] = false;
		else                      // use R 
			type[v[i].second] = true;
	}	
	for(int i = 0; i < n; i++) {
		if(type[i] == false) {
			ans[i][T[i].front().second] = k;
			T[i].pop_front();
		}
		else {
			ans[i][T[i].back().second] = k;
			T[i].pop_back();
		}
	}
}

long long find_maximum(int k, vector<vector<int>> x) {
	int n = x.size();
	int m = x[0].size();
	vector<vector<int>> ans;
	for (int i = 0; i < n; i++) {
		vector<int> row(m, -1);
		ans.push_back(row);
	}
	vector<deque<pair<int, int>>> T(n);
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			T[i].emplace_back(x[i][j], j);
		}
	}
	
	for(int i = 0; i < k; i++) {
		solve(n, i, T, ans);
	}

	// cal
	long long ret = 0;
	vector<vector<int>> TT(k);
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			if(ans[i][j] != -1) {
				TT[ans[i][j]].push_back(x[i][j]);
			}
		}
	}
	for(int i = 0; i < k; i++) {
		sort(all(TT[i]));
		int p = TT[i][n / 2];
		for(int j = 0; j < n; j++) {
			ret = ret + (long long)abs(p - TT[i][j]);
		}
	}
	allocate_tickets(ans);
	/*for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			cout << ans[i][j] << " \n"[j == m - 1];
		}
	}*/
	return ret;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 640 KB Output is correct
6 Correct 3 ms 1788 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 4 ms 512 KB Output is correct
5 Correct 31 ms 3200 KB Output is correct
6 Correct 749 ms 70772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Contestant returned 5 while correct return value is 6.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Contestant returned 11 while correct return value is 13.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Contestant returned 11 while correct return value is 13.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Contestant returned 11 while correct return value is 13.
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 640 KB Output is correct
6 Correct 3 ms 1788 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 0 ms 256 KB Output is correct
9 Correct 1 ms 384 KB Output is correct
10 Correct 4 ms 512 KB Output is correct
11 Correct 31 ms 3200 KB Output is correct
12 Correct 749 ms 70772 KB Output is correct
13 Incorrect 0 ms 256 KB Contestant returned 5 while correct return value is 6.
14 Halted 0 ms 0 KB -