제출 #1294099

#제출 시각아이디문제언어결과실행 시간메모리
1294099goulthen저울 (IOI15_scales)C++20
45.45 / 100
1 ms352 KiB
#include "scales.h" #include <bits/stdc++.h> using namespace std; #define pb push_back void init(int T) { //MEH } void orderCoins() { int W[6]; set<int> l,r; l.insert(1); l.insert(2); l.insert(3); r.insert(4); r.insert(5); r.insert(6); int mn1 = getLightest(1,2,3), mn2 = getLightest(4,5,6); l.erase(mn1); r.erase(mn2); int mn3 = getLightest(mn2,*l.begin(),*l.rbegin()); int mn4 = getLightest(mn1,*r.begin(),*r.rbegin()); if(mn3!=mn2) { W[0] = mn1; W[1] = mn3; l.erase(mn3); mn3 = getLightest(mn2,*l.begin(),*r.begin()); if(mn3==mn2) { W[2] = mn2; int s = *l.begin() + *r.begin() + *r.rbegin(); mn1 = getLightest(*l.begin(), *r.begin(),*r.rbegin()); W[3] = mn1; s-=mn1; mn1 = getHeaviest(*l.begin(),*r.begin(),*r.rbegin()); s-=mn1; W[5]=mn1; W[4]=s; } else { W[2] = *l.begin(); W[3] = mn2; int x = getHeaviest(4,5,6); W[5] = x; W[4] = 15-x-mn2; } } else if(mn4!=mn1) { W[0] = mn2; W[1] = mn4; r.erase(mn4); mn3 = getLightest(mn1,*l.begin(),*r.begin()); if(mn3==mn1) { W[2] = mn1; int s = *l.begin() + *r.begin() + *l.rbegin(); mn1 = getLightest(*l.begin(), *r.begin(),*l.rbegin()); W[3] = mn1; s-=mn1; mn1 = getHeaviest(*l.begin(),*r.begin(),*l.rbegin()); s-=mn1; W[5]=mn1; W[4]=s; } else { W[2] = *r.begin(); W[3] = mn1; int x = getHeaviest(1,2,3); W[5] = x; W[4] = 6-x-mn1; } } else { //l.begin, l.rbegin, r.begin, r.rbegin mn3 = getLightest(mn1,mn2,*l.begin()); W[0] = mn3; W[1] = mn1+mn2-mn3; int x = *l.begin(), y = *l.rbegin(), z = *r.begin(), lft = *r.rbegin(); int s = x+y+z; deque<int> ord; int mn = getLightest(x,y,z), mx = getHeaviest(x,y,z); ord.pb(mn); ord.pb(s-mn-mx); ord.pb(mx); int tmp = getNextLightest(W[0],mn,mx,lft); if(tmp == mn) { W[2] = lft; W[3] = mn; W[4] = s-mn-mx; W[5] = mx; } else if (tmp == W[0]) { W[2] = mn; W[3] = s-mn-mx; W[4] = mx; W[5] = lft; } else { W[2] = mn; W[5] = mx; int tmp2 = getHeaviest(W[0],s-mn-mx,lft); W[3] = lft+s-mn-mx-tmp2; W[4] = tmp2; } } answer(W); }
#Verdict Execution timeMemoryGrader output
Fetching results...