Submission #302144

#TimeUsernameProblemLanguageResultExecution timeMemory
302144arnold518Carnival Tickets (IOI20_tickets)C++14
27 / 100
772 ms66380 KiB
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 1500;

int N, M, K;
int A[MAXN+10][MAXN+10];
int ans2[MAXN+10][MAXN+10];
ll ans;

ll find_maximum(int _K, vector<vector<int>> _X)
{
	N=_X.size(); M=_X[0].size(); K=_K;
	for(int i=1; i<=N; i++) for(int j=1; j<=M; j++) A[i][j]=_X[i-1][j-1];

	priority_queue<pll> PQ;
	for(int i=1; i<=N; i++)
	{
		ans-=A[i][1];
		PQ.push({A[i][1]+A[i][M], i});
		ans2[i][1]=1;
	}

	for(int i=0; i<N/2; i++)
	{
		pll now=PQ.top(); PQ.pop();
		ans+=now.first;
		ans2[now.second][1]=0; ans2[now.second][M]=1;
	}

	vector<vector<int>> answer;
	answer=vector<vector<int>>(N, vector<int>(M));
	for(int i=1; i<=N; i++) for(int j=1; j<=M; j++) answer[i-1][j-1]=ans2[i][j]-1;
	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...