제출 #441107

#제출 시각아이디문제언어결과실행 시간메모리
441107roseanne_pcy카니발 티켓 (IOI20_tickets)C++14
14 / 100
571 ms57772 KiB
#include "tickets.h" #pragma GCC optimize ("O3") #pragma GCC target ("sse4") #include <bits/stdc++.h> using namespace std; typedef pair<int, int> ii; typedef vector<int> vi; typedef long long ll; #define f first #define s second #define pb push_back #define lb lower_bound #define ub upper_bound #define sz(x) (int)x.size() #define all(x) begin(x), end(x) #define rsz resize const int md = 1e9+7; const ll inf = 1e18; const int maxn = 2e3+5; template<class T> void ckmin(T &a, T b) { a = min(a, b); } template<class T> void ckmax(T &a, T b) { a = max(a, b); } int zeros[maxn], ones[maxn]; int p0[maxn], p1[maxn]; int n, m; bool cmp(int x, int y) { return zeros[x]> zeros[y]; } long long find_maximum(int k, vector< vector<int> > x) { n = x.size(); m = x[0].size(); for(int i = 0; i< n; i++) { for(int j = 0; j< m; j++) { zeros[i] += (x[i][j] == 0); ones[i] += (x[i][j] == 1); } p1[i] = zeros[i]; } vector< vector<int> > res(n, vector<int>(m, -1)); vector<int> all_nums; for(int i = 0; i< n; i++) all_nums.pb(i); ll sum = 0; for(int r = 0; r< k; r++) { sort(all(all_nums), cmp); int minus = 0, plus = 0; for(int i = 0; i< n/2; i++) { int x = all_nums[i]; if(zeros[x]> 0) { zeros[x]--; res[x][p0[x]++] = r; } else { ones[x]--; minus++; res[x][p1[x]++] = r; } } for(int i = n/2; i< n; i++) { int x = all_nums[i]; if(ones[x]> 0) { ones[x]--; plus++; res[x][p1[x]++] = r; } else { zeros[x]--; res[x][p0[x]++] = r; } } sum += plus-minus; } allocate_tickets(res); return sum; }
#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...