Submission #1075767

#TimeUsernameProblemLanguageResultExecution timeMemory
1075767TB_Scales (IOI15_scales)C++17
55.56 / 100
1 ms600 KiB
#include <bits/stdc++.h> #include "scales.h" using namespace std; #define ll long long #define fo(i, n) for(ll i = 0; i<(n); i++) #define F first #define S second #define pb push_back #define deb(x) cout << #x << " = " << (x) << endl #define deb2(x, y) cout << #x << " = " << (x) << ", " << #y << " = " << (y) << endl typedef vector<ll> vl; typedef vector<vl> vvl; // int getLightest(int a, int b, int c){ // cout << "light\n"; // cout << a << " " << b << " " << c << endl; // ll res; // cin >> res; // return res; // } // int getMedian(int a, int b, int c){ // cout << "Median\n"; // cout << a << " " << b << " " << c << endl; // ll res; // cin >> res; // return res; // } void init(int T) { } void orderCoins() { int W[] = {-1, -1, -1, -1, -1, -1}; vl order = {1, 2, 3, 4, 5, 6}; fo(i, 20) swap(order[rand()%6], order[rand()%6]); int t1 = getLightest(order[1], order[2], order[3]); int t2 = getLightest(order[4], order[5], order[0]); vector<int> a1, a2; fo(i, 6){ if(t1!=i+1 && (i+1 == order[1]||i+1 == order[2]||i+1 == order[3]))a1.pb(i+1); if(t2!=i+1 && (i+1 == order[0]||i+1 == order[5]||i+1 == order[4]))a2.pb(i+1); } int dist = 1; while(dist==t1||dist==t2)dist++; W[0] = getLightest(t1, t2, dist); if(t1==W[0]){ W[1] = getLightest(t2, a1[0], a1[1]); }else{ W[1] = getLightest(t1, a2[0], a2[1]); } vector<int> left; fo(i, 6){ if(i+1==W[0] || i+1 == W[1]) continue; left.pb(i+1); } int res = getLightest(left[0], left[1], left[2]); int other = left[0]; if(other == res) other = left[1]; int res2 = getMedian(res, other, left[3]); if(res2 == res){ W[2] = left[3]; W[3] = res; W[4] = getMedian(left[0], left[1], left[2]); }else{ W[2] = res; left.clear(); fo(i, 6){ if(i+1==W[0] || i+1 == W[1] || i+1 == W[2]) continue; left.pb(i+1); } W[3] = getLightest(left[0], left[1], left[2]); W[4] = getMedian(left[0], left[1], left[2]); } fo(i, 6){ if(i+1==W[0] || i+1==W[1] || i+1==W[2] || i+1 == W[3]|| i+1 == W[4]) continue; W[5] = i+1; } // fo(i, 6) deb(W[i]); answer(W); } // int main(){ // orderCoins(); // return 0; // }

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:35:15: warning: unused parameter 'T' [-Wunused-parameter]
   35 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:42:54: 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]
   42 |     int t1 = getLightest(order[1], order[2], order[3]);
      |                                                      ^
scales.cpp:42:54: 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:42:54: 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:43:54: 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]
   43 |     int t2 = getLightest(order[4], order[5], order[0]);
      |                                                      ^
scales.cpp:43:54: 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:43:54: 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:46:82: warning: conversion from 'long long int' to 'std::vector<int>::value_type' {aka 'int'} may change value [-Wconversion]
   46 |         if(t1!=i+1 && (i+1 == order[1]||i+1 == order[2]||i+1 == order[3]))a1.pb(i+1);
      |                                                                                 ~^~
scales.cpp:47:82: warning: conversion from 'long long int' to 'std::vector<int>::value_type' {aka 'int'} may change value [-Wconversion]
   47 |         if(t2!=i+1 && (i+1 == order[0]||i+1 == order[5]||i+1 == order[4]))a2.pb(i+1);
      |                                                                                 ~^~
scales.cpp:62:18: warning: conversion from 'long long int' to 'std::vector<int>::value_type' {aka 'int'} may change value [-Wconversion]
   62 |         left.pb(i+1);
      |                 ~^~
scales.cpp:77:22: warning: conversion from 'long long int' to 'std::vector<int>::value_type' {aka 'int'} may change value [-Wconversion]
   77 |             left.pb(i+1);
      |                     ~^~
scales.cpp:84:17: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   84 |         W[5] = i+1;
      |                ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...