Submission #1091803

#TimeUsernameProblemLanguageResultExecution timeMemory
1091803MMihalevScales (IOI15_scales)C++14
55.56 / 100
1 ms604 KiB
#include "scales.h" #include<deque> using namespace std; void init(int T) { /* ... */ } void orderCoins() { int W[6]; deque<int>q[2]; int xo1=0; int el1=getLightest(1,2,3); int el2=getMedian(1,2,3); q[0].push_back(el1); q[0].push_back(el2); q[0].push_back(el1^el2^xo1); int xo2=7; el1=getLightest(4,5,6); el2=getMedian(4,5,6); q[1].push_back(el1); q[1].push_back(el2); q[1].push_back(el1^el2^xo2); int sz=0; while(1) { if(q[0].size()!=1 && q[1].size()!=1) { int cur=getLightest(q[0][0],q[0][1],q[1][0]); W[sz++]=cur; if(cur==q[0][0])q[0].pop_front(); else q[1].pop_front(); } else { if(q[0].size()>q[1].size())swap(q[0],q[1]); if(q[1].size()==3) { int mid=getMedian(q[0][0],q[1][0],q[1][1]); if(mid==q[1][0]) { W[sz++]=q[0][0];W[sz++]=q[1][0];W[sz++]=q[1][1];W[sz++]=q[1][2]; } if(mid==q[0][0]) { W[sz++]=q[1][0];W[sz++]=q[0][0];W[sz++]=q[1][1];W[sz++]=q[1][2]; } if(mid==q[1][1]) { W[sz++]=q[1][0];W[sz++]=q[1][1]; int mid2=getMedian(q[1][1],q[0][0],q[1][2]); if(mid2==q[0][0]){W[sz++]=q[0][0];W[sz++]=q[1][2];} else {W[sz++]=q[1][2];W[sz++]=q[0][0];} } } else { int mid=getMedian(q[0][0],q[1][0],q[1][1]); if(mid==q[1][0]) { W[sz++]=q[0][0];W[sz++]=q[1][0];W[sz++]=q[1][1]; } else if(mid==q[0][0]) { W[sz++]=q[1][0];W[sz++]=q[0][0];W[sz++]=q[1][1]; } else { W[sz++]=q[1][0];W[sz++]=q[1][1];W[sz++]=q[0][0]; } } break; } } answer(W); }

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:5:15: warning: unused parameter 'T' [-Wunused-parameter]
    5 | void init(int T)
      |           ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...