Submission #596810

# Submission time Handle Problem Language Result Execution time Memory
596810 2022-07-15T06:07:06 Z chirathnirodha Scales (IOI15_scales) C++17
56.0764 / 100
1 ms 340 KB
#include "scales.h"
#include<bits/stdc++.h>
using namespace std;
#define PB push_back
void init(int T) {
    /* ... */
}

void orderCoins() {
    /* ... */
    int W[] = {1, 2, 3, 4, 5, 6};
    vector<int> v1,v2;
    vector<int> ans;
    bool got[7];memset(got,false,sizeof(got));
    v1.PB(getLightest(1,2,3));
    v1.PB(getMedian(1,2,3));
    got[v1[0]]=true;got[v1[1]]=true;
    for(int i=1;i<=3;i++)if(got[i]==false)v1.PB(i);
    v2.PB(getLightest(4,5,6));
    v2.PB(getMedian(4,5,6));
    got[v2[0]]=true;got[v2[1]]=true;
    for(int i=4;i<=6;i++)if(got[i]==false)v2.PB(i);
    while(true){
        if(v1.size()==0 || v2.size()==0){
            while(!v1.empty()){
                ans.PB(v1.back());
                v1.pop_back();
            }
            while(!v2.empty()){
                ans.PB(v2.back());
                v2.pop_back();
            }
            break;
        }
        int x1=-1,x2=-1,y1=-1,y2=-1,z;
        x1=v1.back();y1=v2.back();
        if(v1.size()>1)x2=v1[v1.size()-2];
        if(v2.size()>1)y2=v2[v2.size()-2];
        if(x2==-1 && y2==-1){
            z=getMedian(x1,y1,ans[0]);
            if(z==x1){ans.PB(x1);ans.PB(y1);}
            else {ans.PB(y1);ans.PB(x1);}
            break;
        }
        if(x2!=-1){
            z=getMedian(x1,x2,y1);
            if(z==x1){ans.PB(y1);v2.pop_back();}
            else if(z==y1){
                ans.PB(x1);v1.pop_back();
                ans.PB(y1);v2.pop_back();
            }
            else {
                ans.PB(x1);v1.pop_back();
                ans.PB(x2);v1.pop_back();
            }
        }
        else{
            z=getMedian(x1,y1,y2);
            if(z==x1){
                ans.PB(y1);v2.pop_back();
                ans.PB(x1);v1.pop_back();
            }
            else if(z==y1){ans.PB(x1);v1.pop_back();}
            else {
                ans.PB(y1);v2.pop_back();
                ans.PB(y2);v2.pop_back();
            }
        } 
    }
    reverse(ans.begin(),ans.end());
    for(int i=0;i<6;i++)W[i]=ans[i];
    answer(W);
}

Compilation message

scales.cpp: In function 'void init(int)':
scales.cpp:5:15: warning: unused parameter 'T' [-Wunused-parameter]
    5 | void init(int T) {
      |           ~~~~^
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 212 KB Output is partially correct
2 Partially correct 1 ms 212 KB Output is partially correct
3 Partially correct 0 ms 212 KB Output is partially correct
4 Partially correct 0 ms 212 KB Output is partially correct
5 Partially correct 1 ms 300 KB Output is partially correct
6 Partially correct 1 ms 212 KB Output is partially correct
7 Partially correct 1 ms 212 KB Output is partially correct
8 Partially correct 1 ms 300 KB Output is partially correct
9 Partially correct 1 ms 300 KB Output is partially correct
10 Partially correct 1 ms 212 KB Output is partially correct
11 Partially correct 1 ms 212 KB Output is partially correct
12 Partially correct 1 ms 212 KB Output is partially correct
13 Partially correct 1 ms 300 KB Output is partially correct
14 Partially correct 1 ms 212 KB Output is partially correct
15 Partially correct 1 ms 300 KB Output is partially correct
16 Partially correct 0 ms 212 KB Output is partially correct
17 Partially correct 1 ms 212 KB Output is partially correct
18 Partially correct 1 ms 212 KB Output is partially correct
19 Partially correct 0 ms 212 KB Output is partially correct
20 Partially correct 1 ms 212 KB Output is partially correct
21 Partially correct 0 ms 212 KB Output is partially correct
22 Partially correct 1 ms 212 KB Output is partially correct
23 Partially correct 1 ms 212 KB Output is partially correct
24 Partially correct 1 ms 212 KB Output is partially correct
25 Partially correct 1 ms 300 KB Output is partially correct
26 Partially correct 1 ms 340 KB Output is partially correct
27 Partially correct 0 ms 212 KB Output is partially correct
28 Partially correct 1 ms 300 KB Output is partially correct
29 Partially correct 1 ms 212 KB Output is partially correct
30 Partially correct 1 ms 300 KB Output is partially correct
31 Partially correct 0 ms 212 KB Output is partially correct
32 Partially correct 1 ms 212 KB Output is partially correct
33 Partially correct 1 ms 292 KB Output is partially correct
34 Partially correct 0 ms 212 KB Output is partially correct
35 Partially correct 1 ms 212 KB Output is partially correct
36 Partially correct 1 ms 212 KB Output is partially correct
37 Partially correct 1 ms 212 KB Output is partially correct
38 Partially correct 1 ms 212 KB Output is partially correct
39 Partially correct 1 ms 212 KB Output is partially correct
40 Partially correct 0 ms 296 KB Output is partially correct