Submission #1148024

#TimeUsernameProblemLanguageResultExecution timeMemory
1148024alexddScales (IOI15_scales)C++20
57.12 / 100
0 ms328 KiB
#include "scales.h" #include<bits/stdc++.h> using namespace std; void init(int T) { } void orderCoins() { vector<int> v1,v2; v1.push_back(getLightest(1,2,3)); v1.push_back(getMedian(1,2,3)); for(int i=1;i<=3;i++) if(v1[0]!=i && v1[1]!=i) v1.push_back(i); v2.push_back(getLightest(4,5,6)); v2.push_back(getMedian(4,5,6)); for(int i=4;i<=6;i++) if(v2[0]!=i && v2[1]!=i) v2.push_back(i); assert(v1.size()==3); assert(v2.size()==3); int p1=0,p2=0; int sol[6]; for(int pas=0;pas<6;pas++) { if(p1==3) { sol[pas] = v2[p2]; p2++; continue; } if(p2==3) { sol[pas] = v1[p1]; p1++; continue; } if(p1==2 && p2==2) { int x = getHeaviest(v1[2],v2[2],v1[0]); if(x==v1[2]) { sol[pas] = v2[2]; p2++; } else { sol[pas] = v1[2]; p1++; } } else { if(p1==2) { swap(p1,p2); swap(v1,v2); } int m = getMedian(v1[p1], v1[p1+1], v2[p2]); if(m == v1[p1+1]) { sol[pas] = v1[p1]; sol[pas+1] = v1[p1+1]; p1 += 2; pas++; } else if(m == v1[p1]) { sol[pas] = v2[p2]; p2++; } else { sol[pas] = v1[p1]; sol[pas+1] = v2[p2]; p1++; p2++; pas++; } } } answer(sol); }
#Verdict Execution timeMemoryGrader output
Fetching results...