Submission #1202256

#TimeUsernameProblemLanguageResultExecution timeMemory
1202256ASGA_RedSeaScales (IOI15_scales)C++20
45.57 / 100
0 ms328 KiB
/** * بسم الله الرحمن الرحيم * ﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿ */ /// author : "ASGA" #pragma GCC optimize("Ofast") #include<bits/stdc++.h> using namespace std; using ll=long long; #include "scales.h" void answer(int w[]); int getHeaviest(int a,int b,int c); int getLightest(int a,int b,int c); int getMedian(int a,int b,int c); int getNextLightest(int a,int b,int c,int d); void init(int T){return;} void orderCoins(){ int A[]={1,2,3,4,5,6}; { auto s=A,e=A+4; int a=*s,b=*(s+1),c=*(s+2),d=*(s+3); vector<int>o; int q=getLightest(a,b,c); int w=getMedian(a,b,c); o.push_back(q); o.push_back(w); if(q==a)o.push_back(w==b?c:b); if(q==b)o.push_back(w==a?c:a); if(q==c)o.push_back(w==b?a:b); a=o[0],b=o[1],c=o[2]; int ee=getNextLightest(a,b,c,d); if(ee==a){ int r=getHeaviest(a,b,d); if(r==d)o.push_back(d); else o.insert(o.begin(),d); } else{ int i=(ee==b?1:2); o.insert(o.begin()+i,d); } int i=0; while(s!=e)(*s++)=o[i++]; } { auto s=A+2,e=A+6; int a=*s,b=*(s+1),c=*(s+2),d=*(s+3); vector<int>o; int q=getMedian(a,b,c); if(q==a)o={c,a,b}; if(q==b)o={a,b,c}; if(q==c)o={a,c,b}; a=o[0],b=o[1],c=o[2]; int ee=getNextLightest(a,b,c,d); if(ee==a){ int r=getHeaviest(a,b,d); if(r==d)o.push_back(d); else o.insert(o.begin(),d); } else{ int i=(ee==b?1:2); o.insert(o.begin()+i,d); } int i=0; while(s!=e)(*s++)=o[i++]; } { auto s=A,e=A+4; int a=*s,b=*(s+1),c=*(s+2),d=*(s+3); vector<int>o; int q=getMedian(a,b,c); if(q==a){ // o={c,a,b}; q=getMedian(a,b,d); if(q==a)o={c,d,a,b}; if(q==b)o={c,a,b,d}; if(q==d)o={c,a,d,b}; } else if(q==b){ o={a,b,c,d}; } else if(q==c){ // o={a,c,b}; q=getHeaviest(c,b,d); if(q==d)o={a,c,b,d}; else{ assert(q==b); o={a,c,d,b}; } } int i=0; while(s!=e)(*s++)=o[i++]; } answer(A); return; } //signed main(){ // ios_base::sync_with_stdio(0);cin.tie(0); // // // ; // // // return 0; //}
#Verdict Execution timeMemoryGrader output
Fetching results...