제출 #792850

#제출 시각아이디문제언어결과실행 시간메모리
792850KhizriCarnival Tickets (IOI20_tickets)C++17
27 / 100
502 ms60324 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define F first #define S second #define INF 1e18 #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define pii pair<int,int> #define pll pair<ll,ll> #define OK cout<<"Ok"<<endl; #define MOD (ll)(1e9+7) const int mxn=1500+5; int n,m,l[mxn],mid[mxn],r[mxn]; vector<vector<int>>vt; bool cmp(int i,int j){ return vt[i][r[i]]+vt[i][mid[i]]>vt[j][r[j]]+vt[j][mid[j]]; } long long find_maximum(int k, vector<vector<int>> x) { vt=x; n = x.size(); m = x[0].size(); vector<std::vector<int>> ans(n,vector<int>(m,-1)); ll sum=0; vector<int>idx; for(int i=0;i<n;i++){ l[i]=0; r[i]=m-1; mid[i]=k-1; idx.pb(i); } for(int id=1;id<=k;id++){ sort(all(idx),cmp); ll a=0,b=0; for(int i=0;i<n/2;i++){ b+=vt[idx[i]][r[idx[i]]]; ans[idx[i]][r[idx[i]]]=id-1; r[idx[i]]--; } for(int i=n/2;i<n;i++){ a+=vt[idx[i]][l[idx[i]]]; ans[idx[i]][l[idx[i]]]=id-1; l[idx[i]]++; } sum+=b-a; } allocate_tickets(ans); 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...