Submission #358351

# Submission time Handle Problem Language Result Execution time Memory
358351 2021-01-25T11:19:56 Z talant117408 Scales (IOI15_scales) C++17
55.5556 / 100
1 ms 384 KB
#include "scales.h"
#ifndef EVAL
#include "grader.cpp"
#endif
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;

#define precision(n) fixed << setprecision(n)
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define mp make_pair
#define eps (double)1e-9
#define PI 2*acos(0.0)
#define endl "\n"
#define sz(v) int((v).size())
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define do_not_disturb ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define OK cout << "OK" << endl;

void init(int T){
    
}

void orderCoins(){
    int mx1 = getHeaviest(1, 2, 3), mx2 = getHeaviest(4, 5, 6), mn1 = getLightest(1, 2, 3), mn2 = getLightest(4, 5, 6), md1, md2;
    md1 = 6-mx1-mn1;
    md2 = 15-mx2-mn2;
    int w[7];
    memset(w, -1, sizeof(w));
    /*if(getHeaviest(md1, mx1, mx2) == mx2){
        w[mx2] = 6;
        if(getHeaviest(md1, mx1, md2) == md2){
            w[md2] = 5;
            if(getHeaviest(md1, mx1, mn2) == mn2){
                w[mn2] = 4;
                w[mx1] = 3;
                w[md1] = 2;
                w[mn1] = 1;
                answer(w);
            }
            else{
                w[mx1] = 4;
                auto tmp = getMedian(
            }
        }
    }*/
    auto ans1 = getMedian(md1, mx1, mx2);
    if(ans1 == md1){
        w[mx1] = 6; w[md1] = 5;
        auto ans2 = getMedian(mn1, md2, mx2);
        if(ans2 == mx2){
            w[mn1] = 4; w[mx2] = 3; w[md2] = 2; w[mn2] = 1;
        }
        else if(ans2 == md2){
            w[mx2] = 4; w[md2] = 3;
            auto ans3 = getLightest(mn1, mn2, mx1);
            if(ans3 == mn1){
                w[mn2] = 2; w[mn1] = 1;
            }
            else{
                w[mn1] = 2; w[mn2] = 1;
            }
        }
        else{
            w[mx2] = 4; w[mn1] = 3; w[md2] = 2; w[mn2] = 1;
        }
    }
    else if(ans1 == mx2){
        w[mx1] = 6; w[mx2] = 5;
        auto ans2 = getMedian(mn1, md1, md2);
        if(ans2 == mn1){
            w[md1] = 4; w[mn1] = 3;
            w[md2] = 2; w[mn2] = 1;
        }
        else if(ans2 == md1){
            w[md2] = 4;
            auto ans3 = getMedian(mn1, mn2, md1);
            if(ans3 == mn1){
                w[md1] = 3; w[mn1] = 2; w[mn2] = 1;
            }
            else if(ans3 == md1){
                w[mn2] = 3; w[md1] = 2; w[mn1] = 1;
            }
            else{
                w[md1] = 3; w[mn2] = 2; w[mn1] = 1;
            }
        }
        else{
            w[md1] = 4; w[md2] = 3;
            auto ans3 = getLightest(mn1, mn2, mx1);
            if(ans3 == mn1){
                w[mn2] = 2; w[mn1] = 1;
            }
            else{
                w[mn1] = 2; w[mn2] = 1;
            }
        }
    }
    else if(ans1 == mx1){
        w[mx2] = 6;
        auto ans2 = getMedian(mx1, mn2, md1);
        if(ans2 == mx1){
            w[md2] = 5; w[mn2] = 4; w[mx1] = 3; w[md1] = 2; w[mn1] = 1;
        }
        else if(ans2 == mn2){
            w[md1] = 2; w[mn1] = 1; w[mn2] = 3;
            auto ans3 = getHeaviest(mx1, md2, mn1);
            if(ans3 == mx1){
                w[mx1] = 5; w[md2] = 4;
            }
            else{
                w[mx1] = 4; w[md2] = 5;
            }
        }
        else{
            auto ans3 = getMedian(mn1, mn2, md2);
            if(ans3 == md2){
                w[mx1] = 5; w[md1] = 4; w[mn1] = 3; w[md2] = 2; w[mn2] = 1;
            }
            else if(ans3 == mn1){
                w[mn2] = 1; w[mn1] = 2;
                auto ans4 = getMedian(md1, mx1, md2);
                if(ans4 == md1){
                    w[mx1] = 5; w[md1] = 4; w[md2] = 3;
                }
                else if(ans4 == mx1){
                    w[md2] = 5; w[mx1] = 4; w[md1] = 3;
                }
                else{
                    w[mx1] = 5; w[md2] = 4; w[md1] = 3;
                }
            }
            else{
                w[mn1] = 1; w[mn2] = 2;
                auto ans4 = getMedian(md1, mx1, md2);
                if(ans4 == md1){
                    w[mx1] = 5; w[md1] = 4; w[md2] = 3;
                }
                else if(ans4 == mx1){
                    w[md2] = 5; w[mx1] = 4; w[md1] = 3;
                }
                else{
                    w[mx1] = 5; w[md2] = 4; w[md1] = 3;
                }
            }
        }
        
    }
    
    for(int i = 1; i < 7; i++){
        w[i-1] = w[i];
        w[i-1]--;
    }
    int ans[6];
    for(int i = 0; i < 6; i++){
        ans[w[i]] = i+1;
    }
    answer(ans);
}

Compilation message

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