이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;
#define R(i,n,...) for(int i=__VA_ARGS__+0; i<(n); ++i)
struct pii {
int x, i;
bool operator<(const pii b) const { return x>b.x; }
};
long long find_maximum(int K, vector<vector<int>> A) {
const int N=A.size(), M=A[0].size(), X=N*K/2;
vector<int> C(N);
long long sum=0;
priority_queue<pii> Q;
R(i, N) Q.push({A[i][M-K]+A[i][0], i});
R(k, X) {
int i=Q.top().i, &j=C[i]; Q.pop();
sum-=A[i][j];
if(++j<K) Q.push({A[i][j]+A[i][M-K+j], i});
}
R(i, N) R(j, K, C[i]) sum+=A[i][M-K+j];
int l=0;
R(i, N) {
fill(begin(A[i]), end(A[i]), -1);
R(j, C[i]) A[i][j]=l=l+1==K ? 0 : l+1;
int r=l;
R(j, K-C[i]) A[i][M-j-1]=r=r+1==K ? 0 : r+1;
}
allocate_tickets(A);
return sum;
}
# | 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... |