제출 #1029598

#제출 시각아이디문제언어결과실행 시간메모리
1029598happy_node카니발 티켓 (IOI20_tickets)C++17
0 / 100
1 ms436 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; long long find_maximum(int k, std::vector<std::vector<int>> d) { int N=d.size(); int M=d[0].size(); for(int i=0;i<N;i++) { for(int j=0;j<M;j++) { assert(d[i][j]<=1 && 0<=d[i][j]); } } vector<int> vals; for(int j=0;j<M;j++) { int s=0; for(int i=0;i<N;i++) s+=d[i][j]; vals.push_back(min(s,N-s)); } int sum=0; for(int j=M-1;j>=M-k;j--) sum+=vals[j]; int curOpt=sum, opt=-1; for(int j=0;j<k;j++) { // [0,j] U [M-k+j+1,M-1] if(j>=M-k+j+1) break; sum+=vals[j]; sum-=vals[M-k+j]; if(sum<curOpt) { curOpt=sum; opt=j; } } vector<vector<int>> s(N,vector<int>(M,-1)); int cnt=0; for(int j=0;j<=opt;j++) { for(int i=0;i<N;i++) s[i][j]=cnt; cnt++; } for(int j=M-1;j>M-k+opt;j--) { for(int i=0;i<N;i++) s[i][j]=cnt; cnt++; } allocate_tickets(s); return curOpt; }
#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...