제출 #800183

#제출 시각아이디문제언어결과실행 시간메모리
800183alvingogo카니발 티켓 (IOI20_tickets)C++14
100 / 100
625 ms65304 KiB
#include "tickets.h" #include <vector> #include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define fs first #define sc second #define p_q priority_queue using namespace std; typedef long long ll; long long find_maximum(int k, vector<vector<int>> x) { int n = x.size(); int m = x[0].size(); ll ret=0; vector<vector<int> > ans(n,vector<int>(m,-1)); vector<pair<int,int> > v,v2; for(int i=0;i<n/2;i++){ for(int j=0;j<k;j++){ v.push_back({x[i][j]+x[i][j+(m-k)],i}); ret-=x[i][j]; } } for(int i=n/2;i<n;i++){ for(int j=m-k;j<m;j++){ v2.push_back({x[i][j]+x[i][j-(m-k)],i}); ret+=x[i][j]; } } sort(v.begin(),v.end(),greater<pair<int,int> >()); sort(v2.begin(),v2.end()); vector<pair<int,int> > nw(n); for(int i=0;i<n;i++){ nw[i].sc=i; } for(int i=0;i<n/2;i++){ nw[i].fs=k; } for(int i=0;i<n*k/2;i++){ if(v[i].fs>v2[i].fs){ nw[v[i].sc].fs--; nw[v2[i].sc].fs++; ret+=(v[i].fs-v2[i].fs); } } vector<int> l(n),r(n,m-1); for(int i=0;i<k;i++){ sort(nw.begin(),nw.end(),greater<pair<int,int> >()); for(int j=0;j<n/2;j++){ ans[nw[j].sc][l[nw[j].sc]]=i; nw[j].fs--; l[nw[j].sc]++; } for(int j=n/2;j<n;j++){ ans[nw[j].sc][r[nw[j].sc]]=i; r[nw[j].sc]--; } } /* vector<int> l(n),r(n,m-1); for(int w=0;w<k;w++){ vector<pair<int,int> > v; for(int i=0;i<n;i++){ v.push_back({x[i][l[i]]+x[i][r[i]],i}); } sort(v.begin(),v.end()); for(int i=0;i<n/2;i++){ ret-=x[v[i].sc][l[v[i].sc]]; ans[v[i].sc][l[v[i].sc]]=w; l[v[i].sc]++; ret+=x[v[i+n/2].sc][r[v[i+n/2].sc]]; ans[v[i+n/2].sc][r[v[i+n/2].sc]]=w; r[v[i+n/2].sc]--; } } */ allocate_tickets(ans); return ret; }
#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...