Submission #299577

#TimeUsernameProblemLanguageResultExecution timeMemory
299577mohamedsobhi777Scales (IOI15_scales)C++14
45.45 / 100
1 ms384 KiB
#include "scales.h" #include<bits/stdc++.h> using namespace std ; int Te ; void init(int T) { Te = T ; /* ... */ } void orderCoins() { /* ... */ int W[6] = {1 , 2, 3 , 4, 5 , 6} ; int it = 0 ; vector<int> perm[2] ; perm[0] = { getLightest(1 , 2 , 3) , getMedian(1 , 2, 3) } ; perm[0].push_back(6 - perm[0][0] - perm[0][1]) ; perm[1] = { getLightest(4 , 5 , 6) , getMedian(4 , 5, 6) } ; perm[1].push_back(15 - perm[1][0] - perm[1][1]) ; int i = 0 , j = 0 ; while( (i < 2 || j < 2) && max(i, j) < 3 ){ vector<int> quest = {perm[0][i] , perm[1][j]} ; if(i < 2)quest.push_back(perm[0][i+1]) ; else quest.push_back(perm[1][j+1]) ; int ans = getLightest(quest[0] , quest[1] , quest[2]) ; W[it++] = ans ; if(ans == perm[0][i]) i++ ; else j++ ; } vector<int> rem ; int ii = i ; int ij = j ; while(i < 3)rem.push_back(perm[0][i++]) ; while(j < 3)rem.push_back(perm[1][j++]) ; if(ii == 3 || ij == 3){ for(int r = 0 ; r < (int) rem.size() ;r++) W[it++] = rem[r] ; }else{ int ans = getMedian(W[0], rem[0] , rem[1]) ; W[it++] = ans ; W[it++] = 21 - accumulate(W , W + 5 , 0); } answer(W); }
#Verdict Execution timeMemoryGrader output
Fetching results...