Submission #1224455

#TimeUsernameProblemLanguageResultExecution timeMemory
1224455PVM_pvmCarnival Tickets (IOI20_tickets)C++20
14 / 100
296 ms53468 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; #define MAXN 1502 int N,M; pair<int, int> cv[MAXN]; int cn1[MAXN],cn2[MAXN]; bool cmp(pair<int,int> &a, pair<int,int> &b) { return a.first>b.first; } long long find_maximum(int k, vector<vector<int>> x) { int n = x.size(); N=n; int m = x[0].size(); M=m; for (int i = 0; i < n; i++) { int br=0; for (int j=0;j<m;j++) { if (x[i][j]==0) br++; } cv[i]={br,i}; cn1[i]=0; cn2[i]=m-1; } vector<vector<int>> ans; for (int q=0;q<n;q++) { vector<int> ans2; ans2.resize(m); for (int w=0;w<m;w++) ans2[w]=-1; ans.push_back(ans2); } long long otg=0; for (int seg=0;seg<k;seg++) { sort(cv,cv+n,cmp); if (cv[ (n/2)-1 ].first==0) { ///nqma nuli for (int q=0;q<n;q++) { if (cv[q].first!=0) { otg++; cv[q].first--; ans[ cv[q].second ][ cn1[ cv[q].second ] ]=seg; cn1[ cv[q].second ]++; } else { ans[ cv[q].second ][ cn2[ cv[q].second ] ]=seg; cn2[ cv[q].second ]--; } } } else if (cv[ n/2 ].first==(m-seg)) { ///nqma edinici for (int q=0;q<n;q++) { if (cv[q].first==(m-seg)) { cv[q].first--; ans[ cv[q].second ][ cn1[ cv[q].second ] ]=seg; cn1[ cv[q].second ]++; } else { otg++; ans[ cv[q].second ][ cn2[ cv[q].second ] ]=seg; cn2[ cv[q].second ]--; } } } else { ///vsichko tochno otg+=n/2; for (int q=0;q<(n/2);q++) { cv[q].first--; ans[ cv[q].second ][ cn1[ cv[q].second ] ]=seg; cn1[ cv[q].second ]++; } for (int q=(n/2);q<n;q++) { ans[ cv[q].second ][ cn2[ cv[q].second ] ]=seg; cn2[ cv[q].second ]--; } } } allocate_tickets(ans); return otg; }
#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...