Submission #580467

#TimeUsernameProblemLanguageResultExecution timeMemory
580467joelauCarnival Tickets (IOI20_tickets)C++14
11 / 100
27 ms37072 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; long long A[1505][1505], B[1505], C[1505]; vector< tuple<long long,long long,long long> > lst; long long find_maximum(int k, vector<vector<int>> x) { long long N = x.size(), M = x[0].size(); for (long long i = 0; i < N; ++i) for (long long j = 0; j < M; ++j) lst.emplace_back(x[i][j],i,j); sort(lst.begin(),lst.end()); memset(A,0,sizeof(A)); for (long long i = 0; i < N*M/2; ++i) A[get<1>(lst[i])][get<2>(lst[i])] = 1; memset(B,0,sizeof(B)); memset(C,0,sizeof(C)); for (long long i = 0; i < N; ++i) { while (C[i] < M && A[i][C[i]] == 1) C[i]++; } long long val = 0; vector< vector<int> > ans (N, vector<int>(M,-1)); for (long long j = 0; j < M; ++j) { long long cnt = 0; for (long long i = 0; i < N; ++i) { if (cnt < N/2 && A[i][B[i]] == 1) ans[i][B[i]] = j, cnt++, val -= x[i][B[i]], B[i]++; else ans[i][C[i]] = j, val += x[i][C[i]], C[i]++; } } allocate_tickets(ans); return val; }
#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...