Submission #977279

# Submission time Handle Problem Language Result Execution time Memory
977279 2024-05-07T15:48:09 Z IUA_Hasin Scales (IOI15_scales) C++17
55.5556 / 100
1 ms 600 KB
#include "scales.h"

#include <bits/stdc++.h>

#define endl                                          "\n"
#define ll                                            long long

int t;
int vis[7];

void init(int T) {
    t = T;
}

void orderCoins() {
    for(int i=0; i<7; i++){
        vis[i] = 0;
    }
    int w[6];

    int a = getHeaviest(1, 2, 3);
    int b = getHeaviest(4, 5, 6);
    int c;
    if(a==1){
        c = getHeaviest(a, b, 2);
    } else {
        c = getHeaviest(a, b, 1);
    }

    w[5] = c;
    vis[c] = 1;
    int a1;
    if(c==a){
        if(a==1){
            a1 = getHeaviest(b, 2, 3);
        } else if(a==2){
            a1 = getHeaviest(b, 1, 3);
        } else {
            a1 = getHeaviest(b, 1, 2);
        }
    } else {
        if(b==4){
            a1 = getHeaviest(a, 5, 6);
        } else if(b==5){
            a1 = getHeaviest(a, 4, 6);
        } else {
            a1 = getHeaviest(a, 4, 5);
        }
    }
    w[4] = a1;
    vis[a1] = 1;

    std::vector<ll> v;
    for(int i=1; i<=6; i++){
        if(vis[i]==0){
            v.push_back(i);
        }
    }

    int a2 = getHeaviest(v[0], v[1], v[2]);
    int a3;
    if(a2==v[0]){
        a3 = getHeaviest(a2, v[1], v[3]);
    } else {
        a3 = getHeaviest(a2, v[0], v[3]);
    }
    w[3] = a3;
    vis[a3] = 1;
    

    std::vector<ll> v2;
    for(int i=1; i<=6; i++){
        if(vis[i]==0){
            v2.push_back(i);
        }
    }

    int a4 = getHeaviest(v2[0], v2[1], v2[2]);
    int a5 = getLightest(v2[0], v2[1], v2[2]);
    // int a6 = getMedian(v2[0], v2[1], v2[2]);

    w[2] = a4;
    // w[1] = a6;
    w[0] = a5;
    vis[a4] = 1;
    vis[a5] = 1;

    for(int i=1; i<=6; i++){
        if(vis[i]==0){
            w[1] = i;
            break;
        }
    }

    answer(w);

}

Compilation message

scales.cpp: In function 'void orderCoins()':
scales.cpp:60:42: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   60 |     int a2 = getHeaviest(v[0], v[1], v[2]);
      |                                          ^
scales.cpp:60:42: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:60:42: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:63:40: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   63 |         a3 = getHeaviest(a2, v[1], v[3]);
      |                                        ^
scales.cpp:63:40: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:65:40: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   65 |         a3 = getHeaviest(a2, v[0], v[3]);
      |                                        ^
scales.cpp:65:40: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:78:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   78 |     int a4 = getHeaviest(v2[0], v2[1], v2[2]);
      |                                             ^
scales.cpp:78:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:78:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:79:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   79 |     int a5 = getLightest(v2[0], v2[1], v2[2]);
      |                                             ^
scales.cpp:79:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
scales.cpp:79:45: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 348 KB Output is partially correct
2 Partially correct 0 ms 348 KB Output is partially correct
3 Partially correct 0 ms 600 KB Output is partially correct
4 Partially correct 0 ms 388 KB Output is partially correct
5 Partially correct 0 ms 348 KB Output is partially correct
6 Partially correct 0 ms 424 KB Output is partially correct
7 Partially correct 0 ms 348 KB Output is partially correct
8 Partially correct 0 ms 348 KB Output is partially correct
9 Partially correct 1 ms 348 KB Output is partially correct
10 Partially correct 0 ms 348 KB Output is partially correct
11 Partially correct 0 ms 344 KB Output is partially correct
12 Partially correct 0 ms 344 KB Output is partially correct
13 Partially correct 0 ms 348 KB Output is partially correct
14 Partially correct 0 ms 348 KB Output is partially correct
15 Partially correct 0 ms 348 KB Output is partially correct
16 Partially correct 0 ms 348 KB Output is partially correct
17 Partially correct 0 ms 348 KB Output is partially correct
18 Partially correct 0 ms 348 KB Output is partially correct
19 Partially correct 0 ms 348 KB Output is partially correct
20 Partially correct 0 ms 348 KB Output is partially correct
21 Partially correct 0 ms 348 KB Output is partially correct
22 Partially correct 0 ms 348 KB Output is partially correct
23 Partially correct 1 ms 348 KB Output is partially correct
24 Partially correct 0 ms 348 KB Output is partially correct
25 Partially correct 0 ms 348 KB Output is partially correct
26 Partially correct 0 ms 348 KB Output is partially correct
27 Partially correct 1 ms 348 KB Output is partially correct
28 Partially correct 0 ms 348 KB Output is partially correct
29 Partially correct 1 ms 348 KB Output is partially correct
30 Partially correct 0 ms 348 KB Output is partially correct
31 Partially correct 0 ms 348 KB Output is partially correct
32 Partially correct 0 ms 348 KB Output is partially correct
33 Partially correct 1 ms 348 KB Output is partially correct
34 Partially correct 0 ms 348 KB Output is partially correct
35 Partially correct 1 ms 344 KB Output is partially correct
36 Partially correct 0 ms 344 KB Output is partially correct
37 Partially correct 0 ms 348 KB Output is partially correct
38 Partially correct 0 ms 348 KB Output is partially correct
39 Partially correct 0 ms 348 KB Output is partially correct
40 Partially correct 0 ms 348 KB Output is partially correct