제출 #1312784

#제출 시각아이디문제언어결과실행 시간메모리
1312784activedeltorre저울 (IOI15_scales)C++20
71.43 / 100
1 ms332 KiB
#include "scales.h" #include <iostream> using namespace std; void init(int T) { /* ... */ } void orderCoins() { int rez[10]; int a=1,b=2,c=3,d=4,e=5,f=6,uses1,uses2,uses3,uses4,a2,b2,c2,d2; int min1=getLightest(a,b,c); if(a!=min1) { uses1=a; if(b!=min1) { uses2=b; } else { uses2=c; } } else { uses1=b; uses2=c; } int max1=getHeaviest(d,e,f); if(d!=max1) { uses3=d; if(e!=max1) { uses4=e; } else { uses4=f; } } else { uses3=e; uses4=f; } int realmax=getHeaviest(max1,uses1,uses2); if(realmax==max1) { rez[6]=max1; a2=uses1; b2=uses2; } if(realmax==uses1) { rez[6]=uses1; a2=max1; b2=uses2; } if(realmax==uses2) { rez[6]=uses2; a2=max1; b2=uses1; } int realmin=getLightest(min1,uses3,uses4); if(realmin==min1) { rez[1]=min1; c2=uses3; d2=uses4; } if(realmin==uses3) { rez[1]=uses3; c2=min1; d2=uses4; } if(realmin==uses4) { rez[1]=uses4; c2=min1; d2=uses3; } int canmax=getHeaviest(b2,c2,d2); if(canmax==b2) { swap(b2,d2); } if(canmax==c2) { swap(c2,d2); } int med=getMedian(a2,c2,d2); if(med==c2) { int medloc=getMedian(a2,b2,c2); if(medloc==a2) { rez[2]=b2; rez[3]=a2; rez[4]=c2; } else if(medloc==b2) { rez[2]=a2; rez[3]=b2; rez[4]=c2; } else { rez[2]=a2; rez[3]=c2; rez[4]=b2; } } else { if(med==d2) { swap(d2,a2); } int medloc=getMedian(a2,b2,c2); if(medloc==a2) { rez[2]=c2; rez[3]=a2; rez[4]=b2; } else if(medloc==b2) { rez[2]=c2; rez[3]=b2; rez[4]=a2; } else { rez[2]=b2; rez[3]=c2; rez[4]=a2; } } rez[5]=d2; int w[6]; for(int i=1;i<=6;i++) { w[i-1]=rez[i]; } answer(w); }
#Verdict Execution timeMemoryGrader output
Fetching results...