Submission #1177935

#TimeUsernameProblemLanguageResultExecution timeMemory
1177935AldkCarnival Tickets (IOI20_tickets)C++20
100 / 100
599 ms92808 KiB
#include "tickets.h" #include<bits/stdc++.h> #define pb push_back #define F first #define S second #define str string #define ll long long #define ull unsigned ll #define ld long double #define pll pair<ll,ll> #define plll pair<ll,pll> #define pllll pair<pll,pll> #define pii pair<int,int> #define vl vector<ll> #define vll vector<pll> #define vlll vector<plll> #define vllll vector<p4> #define vi vector<int> #define vii vector<pii> #define sz(x) (ll)(x).size() #define fr front() #define tp top() #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define ins insert #define m_p make_pair #pragma GCC target( "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") using namespace std; const ld pi=acos(-1.0); const ll e5=1e5, e6=1e6, e9=1e9; const ll inf=1e18; const ll mod=998244353; const ll MOD=106710087877475399; const ll N=2e3+10; const ll M=2e5+10; const ld eps=1e-9; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll bpm(ll x,ll y,ll m){if(y==0)return 1%m;ll p=bpm(x,y/2,m); if(y%2==0)return p*p%m;else return p*p%m*x%m;} ll bp(ll x,ll y){if(y==0)return 1;ll p=bp(x,y/2); if(y%2==0)return p*p;else return p*p*x;} ll n,m,l[N],r[N]; long long find_maximum(int k, std::vector<std::vector<int>> d){ n=sz(d); m=sz(d[0]); vector<vi> ans; for(ll i=0;i<n;i++){ vi v(m,-1); ans.pb(v); l[i]=0, r[i]=m-1; } ll s=0; for(ll i=0;i<n;i++){ for(ll j=0;j<k;j++) s-=d[i][j]; } vll v; for(ll i=0;i<n;i++){ for(ll x=1;x<=k;x++){ v.pb({d[i][m-x]+d[i][k-x], i}); } } sort(rall(v)); for(ll i=0;i<n/2*k;i++){ ll j=v[i].S; s+=v[i].F; r[j]--; } for(ll x=0;x<k;x++){ vll v; for(ll i=0;i<n;i++){ v.pb({r[i], i}); } sort(rall(v)); for(ll i=0;i<n/2;i++){ ll j=v[i].S; ans[j][l[j]]=x; l[j]++; } for(ll i=n/2;i<n;i++){ ll j=v[i].S; r[j]++; ans[j][r[j]]=x; } } allocate_tickets(ans); return s; }
#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...