Submission #300263

#TimeUsernameProblemLanguageResultExecution timeMemory
300263daniel920712카니발 티켓 (IOI20_tickets)C++14
11 / 100
2 ms768 KiB
#include "tickets.h" #include <vector> #include <algorithm> using namespace std; vector < int > all; struct A { int where; int con; }tt[1505]; bool F(A a,A b) { return a.con<b.con; } vector < vector < int > > answer; vector < int > row; long long find_maximum(int k,vector< vector<int> > x) { int n=x.size(); int m=x[0].size(); int i,j,t,ok,now; long long ans=0; for(i=0;i<m;i++) row.push_back(-1); for(i=0;i<n;i++) answer.push_back(row); if(m==1) { for(int i=0;i<n;i++) { answer[i][0]=0; all.push_back(x[i][0]); } sort(all.begin(),all.end()); for(i=0;i<n;i++) ans+=abs(all[i]-all[n/2]); } else { for(i=0;i<n;i++) { tt[i].where=i; for(j=0;j<m;j++) if(x[i][j]==1) break; tt[i].con=j; } sort(tt,tt+n,F); for(i=0;i<n/2;i++) { ok=0; now=m-1; for(j=0;j<k;j++) { if(ok||x[tt[2*i].where][t]==x[tt[2*i+1].where][m-1-t]) { ok=1; t=now; now--; } else t=j; //printf("%d %d\n",j,t); ans+=x[tt[2*i].where][t]^x[tt[2*i+1].where][m-1-t]; answer[tt[2*i].where][t]=j; answer[tt[2*i+1].where][m-1-t]=j; } } } allocate_tickets(answer); return ans; }

Compilation message (stderr)

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:50:67: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized]
   50 |                 if(ok||x[tt[2*i].where][t]==x[tt[2*i+1].where][m-1-t])
      |                                                                ~~~^~
#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...