Submission #837755

#TimeUsernameProblemLanguageResultExecution timeMemory
837755KerimCarnival Tickets (IOI20_tickets)C++17
27 / 100
401 ms51416 KiB
#include "tickets.h"
#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
using namespace std;
 
long long find_maximum(int k, vector<vector<int>> a) {
	int n = a.size();
	int m = a[0].size();
	vector <vector <int>> ans(n, vector <int> (m, -1));
	ll answer = 0;
	if (m == 1){
		vector<int> v;
		for (int i = 0; i < n; i++) 
			v.push_back(a[i][0]), ans[i][0] = 0;
		sort(v.begin(), v.end());
		for (int i = 0; i < n/2; i++)
			answer -= v[i];
		for (int i = n/2; i < n; i++)
			answer += v[i];
	}
	else if (k == 1){
		vector<pair<int,int> > v;
		for (int i = 0; i < n; i++){
			answer += a[i][m-1];
			v.push_back({-a[i][0]-a[i][m-1], i});
			ans[i][m-1] = 0;
		}
		sort(v.rbegin(), v.rend());
		for (int i = 0; i < n/2; i++){
			answer += v[i].ff;
			ans[v[i].ss][0] = 0;
			ans[v[i].ss][m-1] = -1;
		}
	}
	allocate_tickets(ans);
	return answer;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...