제출 #1259906

#제출 시각아이디문제언어결과실행 시간메모리
1259906erering저울 (IOI15_scales)C++20
56.08 / 100
0 ms328 KiB
#include <bits/stdc++.h> #include "scales.h" using namespace std; #define pb push_back void init(int T) { /* ... */ } void orderCoins() { /* ... */ int W[] = {1, 2, 3, 4, 5, 6}; int a[3],b[3]; a[0]=getLightest(1,2,3); a[1]=getMedian(1,2,3); if(a[0]+a[1]==3)a[2]=3; if(a[0]+a[1]==4)a[2]=2; if(a[0]+a[1]==5)a[2]=1; b[0]=getLightest(4,5,6); b[1]=getMedian(4,5,6); if(b[0]+b[1]==9)b[2]=6; if(b[0]+b[1]==10)b[2]=5; if(b[0]+b[1]==11)b[2]=4; int l1=2,l2=2; for(int i=5;i>=0;i--){ if(l1<0){ while(l2>=0)W[i--]=b[l2--]; break; } if(l2<0){ while(l1>=0)W[i--]=a[l1--]; break; } if(l2>0 && l1==0){ swap(a,b); swap(l1,l2); } if(l1>0){ int x=getMedian(a[l1],a[l1-1],b[l2]); if(x==a[l1-1]){ W[i]=a[l1]; i--; l1--; W[i]=a[l1]; l1--; continue; } if(x==b[l2]){ W[i]=a[l1]; l1--; i--; W[i]=b[l2]; l2--; continue; } W[i]=b[l2]; l2--; continue; } int x=getMedian(a[l1],b[l2],W[i+1]); if(x==a[l1]){ W[i]=a[l1]; W[i-1]=b[l2]; break; } W[i]=b[l2]; W[i-1]=a[l1]; break; } // for(int i=0;i<6;i++)cout<<W[i]<<' '; // cout<<'s'<<endl; answer(W); } //3 4 6 2 1 5
#Verdict Execution timeMemoryGrader output
Fetching results...