Submission #592678

#TimeUsernameProblemLanguageResultExecution timeMemory
592678ogibogi2004Carnival Tickets (IOI20_tickets)C++14
0 / 100
1 ms340 KiB
#include "tickets.h" #include <vector> #include<bits/stdc++.h> using namespace std; #define ll long long long long find_maximum(int k, vector<vector<int>> x1) { //cout<<"?\n"; vector<vector<ll> >x; for(int i=0;i<x1.size();i++) { vector<ll>row; for(int j=0;j<x1[i].size();j++)row.push_back(x1[i][j]); x.push_back(row); } ll n = x.size(); ll m = x[0].size(); vector<vector<int>> answer; vector<pair<ll,ll>>smallest[n]; int ptr1[n],ptr2[n]; for(ll i=0;i<n;i++) { for(ll j=0;j<m;j++)smallest[i].push_back({x[i][j],j}); sort(smallest[i].begin(),smallest[i].end()); ptr1[i]=0;ptr2[i]=smallest[i].size()-1; } answer=x1; for(int i=0;i<answer.size();i++) { for(int j=0;j<answer[i].size();j++) { answer[i][j]=-1; } } //cout<<min0<<" "<<max0<<" "<<n*k/2<<endl; int target=n*k/2; int ret=min((int)target,(int)n*k-target); vector<int>zero[n],one[n]; vector<int>xs; for(int i=0;i<n;++i) { for(int j=0;j<m;++j) { xs.push_back((int)x[i][j]); } } sort(xs.begin(),xs.end()); int med=xs[xs.size()/2]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(x[i][j]<med)zero[i].push_back(j); else one[i].push_back(j); } } //cout<<"eho2\n"; //cout<<"?\n"; vector<pair<int,int> >v; for(int r=0;r<k;r++) { int f=target/(k-r); if(r==k-1)f=target; target-=f; //cout<<r<<" "<<k<<" "<<f<<endl; v.clear(); for(int i=0;i<n;i++) { v.push_back({zero[i].size(),i}); } sort(v.rbegin(),v.rend()); /*for(int j=0;j<v.size();j++)cout<<v[j].first<<" "; cout<<endl; cout<<target<<endl;*/ for(int j=0;j<v.size();j++) { if(j<f) { //if(zero[v[j].second].size()==0)cout<<"bruh0\n"; answer[v[j].second][zero[v[j].second].back()]=r; zero[v[j].second].pop_back(); } else { /*if(one[v[j].second].size()==0) { cout<<zero[v[j].second].size()<<" "<<one[v[j].second].size()<<endl; cout<<"bruh1\n"; cout<<j<<endl; }*/ answer[v[j].second][one[v[j].second].back()]=r; one[v[j].second].pop_back(); } } } allocate_tickets(answer); return ret; } /* 2 3 2 0 2 5 1 1 3 */ /* 4 4 3 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 1 */

Compilation message (stderr)

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:9:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |     for(int i=0;i<x1.size();i++)
      |                 ~^~~~~~~~~~
tickets.cpp:12:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |         for(int j=0;j<x1[i].size();j++)row.push_back(x1[i][j]);
      |                     ~^~~~~~~~~~~~~
tickets.cpp:27:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |     for(int i=0;i<answer.size();i++)
      |                 ~^~~~~~~~~~~~~~
tickets.cpp:29:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         for(int j=0;j<answer[i].size();j++)
      |                     ~^~~~~~~~~~~~~~~~~
tickets.cpp:74:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |         for(int j=0;j<v.size();j++)
      |                     ~^~~~~~~~~
tickets.cpp:19:9: warning: variable 'ptr1' set but not used [-Wunused-but-set-variable]
   19 |     int ptr1[n],ptr2[n];
      |         ^~~~
tickets.cpp:19:17: warning: variable 'ptr2' set but not used [-Wunused-but-set-variable]
   19 |     int ptr1[n],ptr2[n];
      |                 ^~~~
#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...