Submission #522713

#TimeUsernameProblemLanguageResultExecution timeMemory
522713jamezzzCarnival Tickets (IOI20_tickets)C++17
11 / 100
1 ms588 KiB
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> ii;
#define fi first
#define se second
#define pb push_back
#define all(x) x.begin(),x.end()

ll find_maximum(int k,vector<vector<int>> x){
	int n=x.size();
	int m=x[0].size();
	
	vector<vector<int>> answer;
	answer.resize(n);
	for(int i=0;i<n;++i)answer[i].resize(m,-1);
	
	vector<ii> v;
	for(int i=0;i<n;++i){
		for(int j=0;j<m;++j){
			v.pb({x[i][j],i*m+j});
		}
	}
	sort(all(v));
	
	int l=0,r=n*m-1;
	vector<bool> use(n,false);
	
	ll mx=0;
	for(int i=0;i<n/2;++i){
		while(use[v[l].se/m])++l;
		use[v[l].se/m]=true;
		answer[v[l].se/m][v[l].se%m]=0;
		mx-=v[l].fi;
		while(use[v[r].se/m])--r;
		use[v[r].se/m]=true;
		answer[v[r].se/m][v[r].se%m]=0;
		mx+=v[r].fi;
	}
	
	allocate_tickets(answer);
	return mx;
}
#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...