# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
619591 |
2022-08-02T13:18:10 Z |
mdn2002 |
Scales (IOI15_scales) |
C++14 |
|
1 ms |
212 KB |
#include "scales.h"
#include<bits/stdc++.h>
using namespace std;
void init(int T) {
/* ... */
}
void orderCoins() {
int l1 = getLightest ( 1 , 2 , 3 ) , l2 = getLightest ( 4 , 5 , 6 ) , l , n = 6;
map < int , int > ans;
for ( int i = 1 ; i <= n ; i ++ )
{
if ( i != l1 && i != l2 )
{
l = getLightest ( l1 , l2 , i );
ans [1] = l;
break;
}
}
vector < int > nxt;
int cn;
if ( l1 == l )
{
cn = l2;
for ( int i = 1 ; i <= 3 ; i ++ )
{
if ( l != i ) nxt . push_back ( i );
}
}
if ( l2 == l )
{
cn = l1;
for ( int i = 4 ; i <= 6 ; i ++ )
{
if ( l != i ) nxt . push_back ( i );
}
}
int l22 = getLightest ( nxt [0] , nxt [1] , cn );
ans [2] = l22;
if ( l22 == cn )
{
set < int > s;
for ( int i = 1 ; i <= 6 ; i ++ )
{
if ( i == l || i == l22 ) continue;
s . insert ( i );
}
int l33 = getNextLightest ( l , l22 , * s . begin () , * -- s . end () );
int a = * s . begin () , b = * -- s . end () , c = -1 , d;
if ( l33 == a ) swap ( a , b );
for ( int i = 1 ; i <= 6 ; i ++ )
{
if ( i == a || i == b || i == l || i == l22 ) continue;
if ( c == -1 ) c = i;
else d = i;
}
int ltt = getLightest ( a , c , d );
ans [3] = ltt;
if ( ltt == a )
{
int lttt = getLightest ( b , c , d );
int hvvv = getHeaviest ( b , c , d );
ans [4] = lttt , ans [6] = hvvv;
for ( int i = 1 ; i <= n ; i ++ )
{
if ( i == lttt || i == hvvv ) continue;
if ( i != b && i != c && i != d ) continue;
ans [5] = i;
}
}
else
{
int hvv = getHeaviest ( a , c , d );
if ( ltt == c ) c = d;
if ( hvv == a )
{
ans [4] = c;
ans [5] = a;
ans [6] = b;
}
else
{
int middd = getMedian ( a , b , c );
if ( middd == a )
{
ans [4] = c;
ans [5] = a;
ans [6] = b;
}
if ( middd == b )
{
ans [4] = a;
ans [5] = b;
ans [6] = c;
}
if ( middd == c )
{
ans [4] = a;
ans [5] = c;
ans [6] = b;
}
}
}
}
else
{
int mid , fuck;
if ( nxt [0] == l22 ) nxt . erase ( nxt . begin () );
if ( nxt [1] == l22 ) nxt . pop_back ();
for ( int i = 1 ; i <= n ; i ++ )
{
if ( i == l ) continue;
if ( i == l22 ) continue;
if ( i == nxt [0] ) continue;
if ( i == cn ) continue;
mid = getMedian ( nxt [0] , cn , i );
if ( mid == nxt [0] )
{
ans [3] = cn;
fuck = i;
}
if ( mid == cn )
{
ans [3] = nxt [0];
ans [4] = cn;
}
if ( mid == i )
{
ans [3] = cn;
fuck = nxt [0];
nxt [0] = i;
}
break;
}
set < int > s;
for ( int i = 1 ; i <= 6 ; i ++ ) s . insert ( i );
for ( int i = 1 ; i <= 4 ; i ++ )
{
if ( ans [i] == 0 ) break;
s . erase ( s . lower_bound ( ans [i] ) );
}
int midd;
if ( s . size () == 3 )
{
midd = getMedian ( * s . begin () , * ++ s . begin () , * ++ ++ s . begin () );
int in;
for ( auto x : s )
{
if ( x != nxt [0] && x != fuck ) in = x;
}
if ( midd == nxt [0] )
{
ans [4] = in;
ans [5] = nxt [0];
ans [6] = fuck;
}
if ( midd == fuck )
{
ans [4] = nxt [0];
ans [5] = fuck;
ans [6] = in;
}
if ( midd == in )
{
ans [4] = nxt [0];
ans [5] = in;
ans [6] = fuck;
}
}
else
{
midd = getMedian ( * s . begin () , * ++ s . begin () , l );
int in;
for ( auto x : s )
{
if ( x != midd ) in = x;
}
ans [5] = midd;
ans [6] = in;
}
}
int W[] = { ans [1] , ans [2] , ans [3] , ans [4] , ans [5] , ans [6] };
answer(W);
}
Compilation message
scales.cpp: In function 'void init(int)':
scales.cpp:4:15: warning: unused parameter 'T' [-Wunused-parameter]
4 | void init(int T) {
| ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:183:21: warning: 'in' may be used uninitialized in this function [-Wmaybe-uninitialized]
183 | ans [6] = in;
scales.cpp:170:25: warning: 'in' may be used uninitialized in this function [-Wmaybe-uninitialized]
170 | ans [5] = in;
scales.cpp:153:35: warning: 'fuck' may be used uninitialized in this function [-Wmaybe-uninitialized]
153 | if ( x != nxt [0] && x != fuck ) in = x;
| ~~~~~~~~~~~~~^~~~~~~~~~~~
scales.cpp:68:44: warning: 'd' may be used uninitialized in this function [-Wmaybe-uninitialized]
68 | if ( i != b && i != c && i != d ) continue;
| ~~^~~~
scales.cpp:126:13: warning: 'cn' may be used uninitialized in this function [-Wmaybe-uninitialized]
126 | if ( mid == cn )
| ^~
scales.cpp:46:13: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
46 | if ( i == l || i == l22 ) continue;
| ^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
2 |
Partially correct |
0 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 |
0 ms |
212 KB |
Output is partially correct |
6 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
7 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
8 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
9 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
10 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
11 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
12 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
13 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
14 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
15 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
16 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
17 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
18 |
Partially correct |
0 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 |
0 ms |
212 KB |
Output is partially correct |
23 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
24 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
25 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
26 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
27 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
28 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
29 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
30 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
31 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
32 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
33 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
34 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
35 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
36 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
37 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
38 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
39 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
40 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |