Submission #1015513

#TimeUsernameProblemLanguageResultExecution timeMemory
1015513amine_arouaScales (IOI15_scales)C++17
47.30 / 100
1 ms348 KiB
#include<bits/stdc++.h> #include "scales.h" //#include "graderlib.cpp" using namespace std; void init(int T) { } void sort(vector<int> &a) { vector<int> nw = {-1 , -1 , -1}; nw[0] = getLightest(a[0] , a[1] , a[2]); nw[2] = getHeaviest(a[0] , a[1] , a[2]); for(auto x : a) { if(std::find(nw.begin(), nw.end(),x) == nw.end()) { nw[1] = x; } } a = nw; } mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); void orderCoins() { /* ... */ vector<int> a ,b; vector<int> all ; for(int i = 1 ; i <= 6 ; i++) all.push_back(i); shuffle(all.begin() , all.end() , rng); for(int i = 0 ; i < 6 ; i++) { if(i < 3) a.push_back(all[i]); else b.push_back(all[i]); } // a = {1 , 3 , 5}; // b = {6 , 2 , 4}; sort(a); int mb = getLightest(b[0] , b[1] , b[2]); for(int i = 0 ; i < 3 ; i++) { if(b[i] == mb) { swap(b[i] , b[0]); break; } } vector<int> d; int c[6]; vector<int> nxts; for(int j = 0 ; j < 3 ; j++) { int nxt = getNextLightest(b[0] , b[1] , b[2] , a[j]); nxts.push_back(nxt); // d.insert(find(d.begin() , d.end() , nxt) , a[j]); } int last = -1; for(int j = 2 ; j >= 0 ; j--) { if(nxts[j] != b[0]) { last = j; break; } } if(last == -1) { int mid = 1; int nb = getHeaviest(a[mid] , b[2] , b[1]); if(nb == a[mid]) { int nb2 = getHeaviest(a[mid - 1] , b[2] , b[1]); if(nb2 == a[mid - 1]) { mid = 0; if(getHeaviest(b[0] , b[1] , b[2]) == b[1]) swap(b[1] , b[2]); } else { if(b[1] == nb2) swap(b[1] , b[2]); } } else { if(nb == b[1]) swap(b[1] , b[2]); if(getHeaviest(a[2] , b[2] , b[1]) == a[2]) mid = 2; else mid = 3; } d = b; for(int i = 0 ; i < mid ; i++) d.insert(find(d.begin() , d.end() , nxts[i]) , a[i]); for(int i = mid ; i < 3 ; i++) d.push_back(a[i]); } else { if(getHeaviest(b[0] , b[1] , b[2]) == b[1]) swap(b[1] , b[2]); d = b; for(int i = 0 ; i <= last ; i++) { d.insert(find(d.begin() , d.end() , nxts[i]) , a[i]); } for(int i = last + 1; i < 3 ; i++) d.push_back(a[i]); } for(int i = 0 ; i < 6 ; i++) c[i] = d[i]; // vector<int> v = {3 , 4 , 6 , 2 , 1 , 5}; // if(d != v) // { // cout<<b[0]<<" "<<b[1]<<" "<<b[2]<<'\n'; // return ; // } answer(c); } // //int main() { // // int T, i; // // T = _getNumberOfTests(); // init(T); // for (i = 1; i <= T; i++) { // _initNewTest(); // orderCoins(); // } // return 0; //}

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:6:15: warning: unused parameter 'T' [-Wunused-parameter]
    6 | void init(int T) {
      |           ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...