제출 #621493

#제출 시각아이디문제언어결과실행 시간메모리
621493John3_141592카니발 티켓 (IOI20_tickets)C++14
11 / 100
1 ms724 KiB
#include "tickets.h" #include <bits/stdc++.h> #define ll long long #define par pair<int,int> #define f first #define s second #define ld long duble #define ull unsigned long long #define st short int using namespace std; ll find_maximum(int k, std::vector<std::vector<int>> x) { int n = x.size(); int m = x[0].size(); vector <pair<int,par>> vec; vector <vector<int>> answer; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ vec.push_back({x[i][j],{i,j}}); } } sort(vec.begin(),vec.end()); deque <pair<int,par>> cola; for(auto i:vec) cola.push_back(i); bool vis[n+6]; fill(vis,vis+n+3,false); ll solve=0; int asd[n][m]; memset(asd,-1,sizeof(asd)); for(int i=0;i<n/2;i++){ pair<int,par> M1,M2,m1,m2; if(cola.size()==2){ solve+=cola.back().f-cola.front().f; asd[cola.front().s.f][cola.front().s.s]=0; asd[cola.back().s.f][cola.back().s.s]=0; continue; } while(vis[cola.front().s.f]) cola.pop_front(); while(vis[cola.back().s.f]) cola.pop_back(); M1=cola.back(),cola.pop_back(); m1=cola.front(),cola.pop_front(); if(M1.s.f!=m1.s.f){ solve+=M1.f-m1.f; asd[M1.s.f][M1.s.s]=0; asd[m1.s.f][m1.s.s]=0; vis[m1.s.f]=true; continue; } while(vis[cola.front().s.f]) cola.pop_front(); while(vis[cola.back().s.f]) cola.pop_back(); M2=cola.back(),cola.pop_back(); m2=cola.back(),cola.pop_back(); if(M1.f-m2.f>=M2.f-m1.f){ solve+=M1.f-m2.f; asd[M1.s.f][M1.s.s]=0; asd[m2.s.f][m2.s.s]=0; vis[M1.s.f]=true; vis[m2.s.f]=true; continue; } solve+=M2.f-m1.f; asd[M2.s.f][M2.s.s]=0; asd[m1.s.f][m1.s.s]=0; vis[M2.s.f]=true; vis[m1.s.f]=true; } for(int i=0;i<n;i++){ vector <int> aux; for(int j=0;j<m;j++){ aux.push_back(asd[i][j]); } answer.push_back(aux); } allocate_tickets(answer); return solve; }
#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...