제출 #1218320

#제출 시각아이디문제언어결과실행 시간메모리
1218320brinton카니발 티켓 (IOI20_tickets)C++20
25 / 100
746 ms101452 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; long long m_allocate_tickets(vector<vector<int>> answer,vector<vector<int>> x){ allocate_tickets(answer); // find k; int N = answer.size(); int k = 0; for(auto &i:answer[0]) k = max(i+1,k); vector<vector<int>> cards(k); for(int i = 0;i < N;i++){ for(int j = 0;j < answer[0].size();j++){ if(answer[i][j] != -1) cards[answer[i][j]].push_back(x[i][j]); } } long long ans = 0; for(auto v:cards) { sort(v.begin(),v.end()); for(int i = 0;i < N;i++){ if(i < N/2){ ans -= v[i]; }else{ ans += v[i]; } } } return ans; } long long find_maximum(int k, vector<vector<int>> x) { vector<vector<int>> cx = x; int N = x.size(); int M = x[0].size(); vector<array<int,3>> ele; for(int i = 0;i < N;i++){ for(int j = 0;j < M;j++){ ele.push_back({x[i][j],i,j}); } } sort(ele.begin(),ele.end()); for(int i = 0;i < N*M;i++){ auto [val,ci,cj] = ele[i]; if(i < N*M/2){ // small x[ci][cj] = 0; }else{ x[ci][cj] = 1; } } vector<vector<int>> answer(N,vector<int>(M,-1)); vector<int> fpt(N,0); vector<int> bpt(N,M-1); vector<int> ones(N,0); for(int i = 0;i < N;i++){ for(auto &j:x[i]) ones[i] += j; } for(int ck = 0;ck < k;ck++){ // for(auto &i:ones) cout << i << " ";cout << endl; vector<pair<int,int>> colors;// cone,idx; for(int i = 0;i < N;i++){ colors.push_back({ones[i],i}); } sort(colors.begin(),colors.end()); for(int i = 0;i < N;i++){ // cout << type[i]; auto [cone,cidx] = colors[i]; if(i < N/2){// take zero answer[cidx][fpt[cidx]] = ck; ones[cidx] -= x[cidx][fpt[cidx]]; fpt[cidx]++; }else{// take one answer[cidx][bpt[cidx]] = ck; ones[cidx] -= x[cidx][bpt[cidx]]; bpt[cidx]--; } } } return m_allocate_tickets(answer,cx); }
#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...