Submission #414172

#TimeUsernameProblemLanguageResultExecution timeMemory
414172Bill_00Carnival Tickets (IOI20_tickets)C++14
27 / 100
617 ms51860 KiB
#include "tickets.h"
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
int l[2005],r[2005];
long long find_maximum(int k, vector<vector<int> > x) {
	int n = x.size();
	int m = x[0].size();
	long long ans=0;
	vector<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);
	}
	for(int i=0;i<n;i++){
		l[i]=0;
		r[i]=m-1;
	}
	for(int i=0;i<k;i++){
		vector<pair<long long,int> >v;
		for(int j=0;j<n;j++){
			ans+=((long long)x[j][r[j]]);
			v.pb({x[j][l[j]]+x[j][r[j]],j});
		}
		sort(v.begin(),v.end());
		for(int j=0;j<n;j++){
			int id=v[j].second;
			if(j<(n/2)){
				ans-=((long long)v[j].first);
				answer[id][l[id]]=i;
				l[id]++;
			}
			else{
				answer[id][r[id]]=i;
				r[id]--;
			}
		}
	}
	allocate_tickets(answer);
	return ans;
}
#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...