# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
354308 | doowey | 카니발 티켓 (IOI20_tickets) | C++14 | 2017 ms | 158820 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "tickets.h"
using namespace std;
typedef long long ll;
typedef pair<ll,int> pii;
#define fi first
#define se second
#define mp make_pair
const int N = 1510;
priority_queue<pii> low[N];
priority_queue<pii> high[N];
vector<vector<int>> sign;
vector<int> tw[N][2];
vector<vector<int>> sol;
ll find_maximum(int k, vector<vector<int>> x) {
int n = x.size();
int m = x[0].size();
ll sum = 0;
priority_queue<pii> vl;
sign.resize(n);
sol.resize(n);
for(int i = 0 ; i < n; i ++ ){
sign[i].resize(m);
sol[i].resize(m,-1);
for(int j = 0 ; j < k ; j ++ ){
sum -= x[i][j];
sign[i][j]=-1;
low[i].push(mp(x[i][j],j));
}
for(int j = 0; j < m ; j ++ ){
high[i].push(mp(x[i][j],j));
}
vl.push(mp(low[i].top().fi + high[i].top().fi, i));
}
int it;
int i1, i2;
for(int flip = 0; flip < n * k / 2; flip ++ ){
sum += vl.top().fi;
it = vl.top().se;
vl.pop();
i1 = low[it].top().se;
i2 = high[it].top().se;
low[it].pop();
high[it].pop();
sign[it][i1]=0;
sign[it][i2]=+1;
high[it].push(mp(x[it][i1],i1));
while(!high[it].empty() && sign[it][high[it].top().se] == +1){
high[it].pop();
}
if(!low[it].empty() && !high[it].empty()){
vl.push(mp(low[it].top().fi + high[it].top().fi, it));
}
}
for(int i = 0 ; i < n; i ++ ){
for(int j = 0 ; j < m ; j ++ ){
if(sign[i][j] == -1){
tw[i][0].push_back(j);
}
else if(sign[i][j] == +1){
tw[i][1].push_back(j);
}
}
}
for(int r = 0; r < k ; r ++ ){
vector<pii> ord;
for(int i = 0 ; i < n; i ++ ){
ord.push_back(mp(tw[i][1].size(), i));
}
sort(ord.begin(), ord.end());
for(int i = 0 ; i < ord.size(); i ++ ){
if(i < ord.size() / 2){
sol[ord[i].se][tw[ord[i].se][0].back()]=r;
tw[ord[i].se][0].pop_back();
}
else{
sol[ord[i].se][tw[ord[i].se][1].back()]=r;
tw[ord[i].se][1].pop_back();
}
}
}
allocate_tickets(sol);
return sum;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |