Submission #383198

#TimeUsernameProblemLanguageResultExecution timeMemory
383198ogibogi2004Naan (JOI19_naan)C++14
29 / 100
545 ms60652 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long ll n,l; ll v[2048][2048]; pair<ll,ll> p[2048][2048]; bool cmp(pair<ll,ll> p1,pair<ll,ll> p2) { return p1.first*p2.second<p1.second*p2.first; } bool used[2048]; int main() { cin>>n>>l; for(ll i=1;i<=n;++i) { for(ll j=1;j<=l;++j) { cin>>v[i][j]; } } for(ll i=1;i<=n;++i) { ll sum=0; for(ll j=1;j<=l;++j) { sum+=v[i][j]; } ll sumv=0,needed; ll r=1; for(ll j=1;j<n;++j) { needed=sum*j; while(sumv+v[i][r]*n<=needed) { sumv+=v[i][r]*n; ++r; } p[i][j]={(ll)(r-1ll)*v[i][r]*n+needed-sumv,(ll)n*v[i][r]}; } } vector<ll>ans; for(ll i=1;i<n;++i) { bool found=0; pair<ll,ll> best; ll idx; for(ll j=1;j<=n;++j) { if(used[j])continue; //cout<<p[j][i].first<<" "<<p[j][i].second<<" "; if(!found||cmp(p[j][i],best)) { best=p[j][i];found=1; idx=j; } } //cout<<endl; cout<<p[idx][i].first<<" "<<p[idx][i].second<<'\n'; used[idx]=1; ans.push_back(idx); } for(ll i=1;i<=n;++i)if(!used[i])ans.push_back(i); for(auto xd:ans) { cout<<xd<<" "; } cout<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...