一直编译错误
#include <bits/stdc++.h>
#include <vector>
//#include "tickets.h"
void allocate_tickets(std::vector<std::vector<int> > s);
using namespace std;
#define ll long long
int L[1505], R[1505], id[1505];
struct e{
int i;
ll u;
};
bool operator <(e x, e y) {
return x.u<y.u;
}
bool cmp(int x, int y) {
return L[x]>L[y];
}
long long find_maximum(int K, std::vector<std::vector<int> > a) {
vector<vector<int> > print = a;
int n = a.size(), m = a[0].size();
ll sum = 0;
priority_queue<e> q;
for (int p=0;p<n;p++) {
L[p] = K-1;
R[p] = m;
for (int k=0;k<K;k++) {
sum-=a[p][k];
}
for (int k=0;k<m;k++) {
print[p][k] = -1;
}
q.push({p, a[p][R[p]-1]+a[p][L[p]]});
}
for (int zqw=1;zqw<=n*K/2;zqw++) {
e t = q.top();
q.pop();
L[t.i]--, R[t.i]--;
sum+=t.u;
if (R[t.i]&&L[t.i]>=0) q.push({t.i, a[t.i][R[t.i]-1]+a[t.i][L[t.i]]});
}
for (int p=1;p<=n;p++) {
id[p] = p-1;
}
for (int p=0;p<K;p++) {
stable_sort(id+1, id+n+1, cmp);
for (int k=1;k<=n/2;k++) {
print[id[k]][L[id[k]]] = p;
L[id[k]]--;
}
for (int k=n/2+1;k<=n;k++) {
print[id[k]][R[id[k]]] = p;
R[id[k]]++;
}
}
extern "C" allocate_tickets(print);
return sum;
}
/*
int main() {
vector<vector<int> > d;
vector<int> k;
k.push_back(0);
k.push_back(2);
k.push_back(5);
d.push_back(k);
k.clear();
k.push_back(1);
k.push_back(1);
k.push_back(3);
d.push_back(k);
find_maximum(2, d);
return 0;
}
*/