#include <iostream>
#include <vector>
#include <algorithm>
#include "tickets.h"
using namespace std;
int ind[1505];
long long find_maximum(int k, vector<vector<int>> vec){
	long long n = vec.size(), m = vec[0].size(), Ans = 0;
	vector<vector<int>> alc(n, vector<int> (m, -1));
	for (int it=0;it<k;it++){
		long long ans = 0;
		vector<pair<int,int>> vc;
		for (int i=0;i<n;i++){
			ans += vec[i].back();
			vc.push_back({-vec[i].back() - vec[i][ind[i]], i});
		}
		sort(begin(vc), end(vc));
		for (int i=n-1;i>=0;i--){
			auto [vl, Id] = vc[i];
			if (i < n / 2){
				alc[Id][vec[Id].size() - 1] = it;
				vec[Id].pop_back();
			}
			else{
				alc[Id][ind[Id]++] = it;
				ans += vl;
			}
		}
		Ans += ans;
	}
	allocate_tickets(alc);
	return Ans;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |