Submission #1215771

#TimeUsernameProblemLanguageResultExecution timeMemory
1215771byunjaewooScales (IOI15_scales)C++20
100 / 100
1 ms328 KiB
#include "scales.h" #include <bits/stdc++.h> using namespace std; array<int, 5> vec[727]={{1,1,2,3},{3,4,5,6},{4,2,3,4,5},{2,2,5,6},{3,1,4,5},{3,3,4,6},{-1},{3,1,3,6},{-1},{3,3,4,6},{-1},{-1},{3,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,6},{-1},{-1},{1,2,3,4},{3,3,4,6},{-1},{3,1,2,5},{-1},{3,1,4,5},{-1},{-1},{-1},{2,3,5,6},{3,1,4,5},{3,2,4,6},{-1},{3,1,2,6},{-1},{3,2,4,6},{-1},{-1},{3,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,6},{-1},{-1},{1,2,3,4},{3,1,2,5},{-1},{3,2,4,6},{-1},{3,1,4,5},{-1},{-1},{-1},{4,1,2,3,5},{2,2,3,4},{3,1,4,6},{-1},{3,1,4,6},{-1},{1,2,3,4},{-1},{-1},{3,1,2,6},{1,2,3,4},{-1},{1,2,3,5},{-1},{3,2,3,6},{-1},{-1},{3,1,2,6},{1,2,3,4},{-1},{1,3,5,6},{-1},{3,2,3,6},{-1},{-1},{-1},{-1},{4,2,3,4,6},{1,2,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,5},{-1},{-1},{3,2,3,5},{3,1,4,5},{-1},{3,1,4,5},{-1},{3,1,3,4},{-1},{-1},{3,1,5,6},{3,3,4,5},{-1},{3,1,3,4},{-1},{3,3,4,5},{-1},{-1},{-1},{1,3,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,5},{-1},{-1},{3,2,3,5},{3,1,4,5},{-1},{3,1,4,5},{-1},{3,1,2,4},{-1},{-1},{3,1,5,6},{3,2,4,5},{-1},{3,1,2,4},{-1},{3,2,4,5},{-1},{-1},{-1},{1,2,3,4},{3,1,5,6},{3,2,3,5},{-1},{1,3,4,5},{-1},{3,2,3,5},{-1},{-1},{3,1,5,6},{3,2,3,5},{-1},{1,2,4,5},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{2,1,2,3},{-1},{3,1,5,6},{-1},{3,1,5,6},{-1},{-1},{-1},{-1},{4,2,3,4,5},{1,2,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,6},{-1},{-1},{3,1,5,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,4},{-1},{-1},{3,2,3,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,4},{-1},{-1},{-1},{1,3,5,6},{2,2,3,4},{3,1,3,4},{-1},{3,1,2,4},{-1},{3,2,3,6},{-1},{-1},{3,1,5,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,4},{-1},{-1},{3,2,3,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,4},{-1},{-1},{-1},{1,2,3,4},{3,1,5,6},{3,2,3,6},{-1},{3,2,3,6},{-1},{1,3,4,5},{-1},{-1},{3,1,5,6},{3,2,3,6},{-1},{3,2,3,6},{-1},{1,2,4,5},{-1},{-1},{4,1,2,3,4},{2,1,2,3},{-1},{3,1,5,6},{-1},{3,1,5,6},{-1},{-1},{-1},{-1},{-1},{3,4,5,6},{4,1,3,4,5},{2,1,5,6},{3,2,4,5},{3,3,4,6},{-1},{3,2,3,6},{-1},{3,3,4,6},{-1},{-1},{3,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,6},{-1},{-1},{1,1,3,4},{3,3,4,6},{-1},{3,1,2,5},{-1},{3,2,4,5},{-1},{-1},{-1},{2,3,5,6},{3,2,4,5},{3,1,4,6},{-1},{3,1,2,6},{-1},{3,1,4,6},{-1},{-1},{3,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,6},{-1},{-1},{1,1,3,4},{3,1,2,5},{-1},{3,1,4,6},{-1},{3,2,4,5},{-1},{-1},{-1},{4,1,2,3,5},{3,1,2,6},{1,1,3,5},{-1},{1,1,3,4},{-1},{3,1,3,6},{-1},{-1},{2,1,3,4},{3,2,4,6},{-1},{3,2,4,6},{-1},{1,1,3,4},{-1},{-1},{3,1,2,6},{1,3,5,6},{-1},{1,1,3,4},{-1},{3,1,3,6},{-1},{-1},{-1},{-1},{4,1,3,4,6},{1,1,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,5},{-1},{-1},{3,1,3,5},{3,2,4,5},{-1},{3,2,4,5},{-1},{3,2,3,4},{-1},{-1},{3,2,5,6},{3,3,4,5},{-1},{3,2,3,4},{-1},{3,3,4,5},{-1},{-1},{-1},{1,3,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,5},{-1},{-1},{3,1,3,5},{3,2,4,5},{-1},{3,2,4,5},{-1},{3,1,2,4},{-1},{-1},{3,2,5,6},{3,1,4,5},{-1},{3,1,2,4},{-1},{3,1,4,5},{-1},{-1},{-1},{1,1,3,4},{3,1,3,5},{3,2,5,6},{-1},{3,1,2,6},{-1},{3,1,2,6},{-1},{-1},{3,1,3,5},{3,1,2,6},{-1},{3,2,5,6},{-1},{3,2,3,6},{-1},{-1},{4,1,2,3,4},{3,2,5,6},{-1},{2,1,2,3},{-1},{3,2,5,6},{-1},{-1},{-1},{-1},{4,1,3,4,5},{1,1,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,6},{-1},{-1},{3,2,5,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,4},{-1},{-1},{3,1,3,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,4},{-1},{-1},{-1},{1,3,5,6},{2,1,3,4},{3,2,3,4},{-1},{3,1,2,4},{-1},{3,1,3,6},{-1},{-1},{3,2,5,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,2,4},{-1},{-1},{3,1,3,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,1,2,4},{-1},{-1},{-1},{1,1,3,4},{3,1,3,6},{3,2,5,6},{-1},{3,1,2,5},{-1},{3,1,2,5},{-1},{-1},{3,1,3,6},{3,1,2,5},{-1},{3,2,5,6},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{3,2,5,6},{-1},{2,1,2,3},{-1},{3,2,5,6},{-1},{-1},{-1},{-1},{-1},{3,4,5,6},{4,1,2,4,5},{2,1,5,6},{3,3,4,5},{3,2,4,6},{-1},{3,2,3,6},{-1},{3,2,4,6},{-1},{-1},{3,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,6},{-1},{-1},{1,1,2,4},{3,2,4,6},{-1},{3,1,3,5},{-1},{3,3,4,5},{-1},{-1},{-1},{2,2,5,6},{3,3,4,5},{3,1,4,6},{-1},{3,1,3,6},{-1},{3,1,4,6},{-1},{-1},{3,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,6},{-1},{-1},{1,1,2,4},{3,1,3,5},{-1},{3,1,4,6},{-1},{3,3,4,5},{-1},{-1},{-1},{4,1,2,3,5},{3,1,3,6},{1,1,2,5},{-1},{1,1,2,4},{-1},{3,1,2,6},{-1},{-1},{3,1,3,6},{1,2,5,6},{-1},{1,1,2,4},{-1},{3,1,2,6},{-1},{-1},{2,1,2,4},{3,3,4,6},{-1},{3,3,4,6},{-1},{1,1,2,4},{-1},{-1},{-1},{-1},{4,1,2,4,6},{1,1,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,5},{-1},{-1},{3,1,2,5},{3,3,4,5},{-1},{3,3,4,5},{-1},{3,2,3,4},{-1},{-1},{3,3,5,6},{3,2,4,5},{-1},{3,2,3,4},{-1},{3,2,4,5},{-1},{-1},{-1},{1,2,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,5},{-1},{-1},{3,1,2,5},{3,3,4,5},{-1},{3,3,4,5},{-1},{3,1,3,4},{-1},{-1},{3,3,5,6},{3,1,4,5},{-1},{3,1,3,4},{-1},{3,1,4,5},{-1},{-1},{-1},{1,1,2,4},{3,1,2,5},{3,3,5,6},{-1},{3,1,3,6},{-1},{3,1,3,6},{-1},{-1},{3,1,2,5},{3,1,3,6},{-1},{3,3,5,6},{-1},{3,2,3,6},{-1},{-1},{4,1,2,3,4},{3,3,5,6},{-1},{3,3,5,6},{-1},{2,1,2,3},{-1},{-1},{-1},{-1},{4,1,2,4,5},{1,1,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,6},{-1},{-1},{3,3,5,6},{3,2,4,6},{-1},{3,2,4,6},{-1},{3,2,3,4},{-1},{-1},{3,1,2,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,2,3,4},{-1},{-1},{-1},{1,2,5,6},{2,1,2,4},{3,2,3,4},{-1},{3,1,3,4},{-1},{3,1,2,6},{-1},{-1},{3,3,5,6},{3,1,4,6},{-1},{3,1,4,6},{-1},{3,1,3,4},{-1},{-1},{3,1,2,6},{3,3,4,6},{-1},{3,3,4,6},{-1},{3,1,3,4},{-1},{-1},{-1},{1,1,2,4},{3,1,2,6},{3,3,5,6},{-1},{3,1,3,5},{-1},{3,1,3,5},{-1},{-1},{3,1,2,6},{3,1,3,5},{-1},{3,3,5,6},{-1},{3,2,3,5},{-1},{-1},{4,1,2,3,4},{3,3,5,6},{-1},{3,3,5,6},{-1},{2,1,2,3},{-1},{-1},{-1},{-1},{-1}}; void init(int T) { } void orderCoins() { vector<array<int, 6>> qry; int p=0; for(int i=0; i<6; i++) { int x=vec[p][1], y=vec[p][2], z=vec[p][3], w=vec[p][4]; int t=0; if(vec[p][0]==1) t=getHeaviest(x, y, z); else if(vec[p][0]==2) t=getLightest(x, y, z); else if(vec[p][0]==3) t=getMedian(x, y, z); else t=getNextLightest(x, y, z, w); qry.push_back({vec[p][0], x, y, z, w, t}); p++; if(t==y || t==z) { int sum=0; for(int j=p; j<727; j++) { if(vec[j][0]<0) sum--; else sum++; if(sum==0) { p=j+1; break; } } } if(t==z) { int sum=0; for(int j=p; j<727; j++) { if(vec[j][0]<0) sum--; else sum++; if(sum==0) { p=j+1; break; } } } } vector<int> vec; for(int i=1; i<=6; i++) vec.push_back(i); do { bool flag=true; for(auto [o, x, y, z, w, t]:qry) { if(o==1) { if(max({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) { flag=false; break; } } else if(o==2) { if(min({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) { flag=false; break; } } else if(o==3) { if(vec[x-1]+vec[y-1]+vec[z-1]-max({vec[x-1], vec[y-1], vec[z-1]})-min({vec[x-1], vec[y-1], vec[z-1]})!=vec[t-1]) { flag=false; break; } } else { if(max({vec[x-1], vec[y-1], vec[z-1]})<vec[w-1]) { if(vec[x-1]==min({vec[x-1], vec[y-1], vec[z-1]})) { if(x!=t) { flag=false; break; } } if(vec[y-1]==min({vec[x-1], vec[y-1], vec[z-1]})) { if(y!=t) { flag=false; break; } } if(vec[z-1]==min({vec[x-1], vec[y-1], vec[z-1]})) { if(z!=t) { flag=false; break; } } } else if(vec[x-1]>vec[w-1] && (vec[y-1]<vec[w-1] || vec[y-1]>vec[x-1]) && (vec[z-1]<vec[w-1] || vec[z-1]>vec[x-1])) { if(x!=t) { flag=false; break; } } else if(vec[y-1]>vec[w-1] && (vec[x-1]<vec[w-1] || vec[x-1]>vec[y-1]) && (vec[z-1]<vec[w-1] || vec[z-1]>vec[y-1])) { if(y!=t) { flag=false; break; } } else if(vec[z-1]>vec[w-1] && (vec[x-1]<vec[w-1] || vec[x-1]>vec[z-1]) && (vec[y-1]<vec[w-1] || vec[y-1]>vec[z-1])) { if(z!=t) { flag=false; break; } } } } if(!flag) continue; int ans[6]; for(int i=0; i<6; i++) ans[vec[i]-1]=i+1; answer(ans); }while(next_permutation(vec.begin(), vec.end())); }
#Verdict Execution timeMemoryGrader output
Fetching results...