Submission #1017732

#TimeUsernameProblemLanguageResultExecution timeMemory
1017732nickolasarapidisCarnival Tickets (IOI20_tickets)C++17
11 / 100
1 ms860 KiB
#include "tickets.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll calculate_score(vector<int> A){
	int N = A.size();

	ll sum = 0;

	int mid = A[N/2];

	for(int i = 0; i < N; i++){
		sum += abs(A[i] - mid);
	}

	return sum;
}

ll find_maximum(int k, vector<vector<int>> X){
	ll ans = 0;

	int N = X.size();
	int M = X[0].size();

	vector<int> s(M, -1);
	vector<vector<int>> S(N, s);

	vector<int> large;
	vector<int> small;
	vector<int> A;

	for(int i = 0; i < k; i++){
		large.clear();
		small.clear();
		A.clear();

		for(int j = 0; j < N; j++){
			large.push_back(X[j][(M - 1) - i]);
			small.push_back(X[j][0 + i]);
			S[j][(M - 1) - i] = i;
			S[j][0 + i] = i;
		}

		sort(large.begin(), large.end());
		sort(small.begin(), small.end());

		for(int j = 0; j < N/2; j++){
			A.push_back(small[j]);
		}

		for(int j = N/2; j < N; j++){
			A.push_back(large[j]);
		}

		ans += calculate_score(A);
	}

	allocate_tickets(S);

	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...