#include <bits/stdc++.h>
#include <scales.h>
using namespace std;
void init(int T){
}
void answer(int W[]);
int getMedian(int A, int B, int C);
int getHeaviest(int A, int B, int C);
int getLightest(int A, int B, int C);
int getNextLightest(int A, int B, int C, int D);
void verase(int x, vector<int> &v){
for(int i = 0; i < v.size(); ++i){
if(v[i] == x){
v.erase(v.begin() + i);
return;
}
}
}
void vinsert(int pos, int val, vector<int> &v){
for(int i = v.size() - 1; i > pos; --i) v[i] = v[i - 1];
v[pos] = val;
}
void orderCoins() {
int W[6];
int mx = getHeaviest(1, 2, 3);
int val = getNextLightest(1, 2, 3, 4);
vector<int> v(7);
vector<bool> used(7);
v[3] = mx;
used[v[3]] = 1;
if(val == mx){
int mn = getLightest(1, 2, 3);
v[2] = 4;
v[0] = mn;
used[v[2]] = used[v[0]] = 1;
for(int i = 1; i <= 3; ++i) if(!used[i]) v[1] = i;
}else{
used[val] = 1;
int k;
for(int i = 1; i <= 3; ++i) if(!used[i]) k = i;
int med = getMedian(k, v[3], 4);
if(med == v[3]){
v[2] = v[3];
v[3] = 4;
v[0] = val;
v[1] = k;
}else if(med == 4){
v[0] = k;
v[1] = 4;
v[2] = val;
}else{
v[0] = 4;
v[1] = val;
v[2] = k;
}
}
int five1 = getMedian(v[0], v[1], 5);
if(five1 == v[0]){
vinsert(0, 5, v);
}else if(five1 == 5){
vinsert(1, 5, v);
}else{
int five2 = getMedian(v[2], v[3], 5);
if(five2 == v[3]){
vinsert(4, 5, v);
}else if(five2 == v[2]){
vinsert(2, 5, v);
}else{
vinsert(3, 5, v);
}
}
int six1 = getMedian(v[2], v[3], 6);
if(six1 == 6){
vinsert(3, 6, v);
}else if(six1 == v[2]){
int six2 = getMedian(v[0], v[1], 6);
if(six2 == v[0]){
vinsert(0, 6, v);
}else if(six2 == v[1]){
vinsert(2, 6, v);
}else{
vinsert(1, 6, v);
}
}else if(six1 == v[3]){
int six2 = getHeaviest(v[0], v[4], 6);
if(six2 == 6){
vinsert(5, 6, v);
}else{
vinsert(4, 6, v);
}
}
for(int i = 0; i < 6; ++i) W[i] = v[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){
| ~~~~^
scales.cpp: In function 'void verase(int, std::vector<int>&)':
scales.cpp:17:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
17 | for(int i = 0; i < v.size(); ++i){
| ~~^~~~~~~~~~
scales.cpp: In function 'void vinsert(int, int, std::vector<int>&)':
scales.cpp:25:23: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
25 | for(int i = v.size() - 1; i > pos; --i) v[i] = v[i - 1];
| ~~~~~~~~~^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
2 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
3 |
Partially correct |
1 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 |
1 ms |
212 KB |
Output is partially correct |
8 |
Partially correct |
0 ms |
296 KB |
Output is partially correct |
9 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
10 |
Partially correct |
1 ms |
300 KB |
Output is partially correct |
11 |
Partially correct |
1 ms |
300 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 |
0 ms |
212 KB |
Output is partially correct |
16 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
17 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
18 |
Partially correct |
1 ms |
300 KB |
Output is partially correct |
19 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
20 |
Partially correct |
1 ms |
304 KB |
Output is partially correct |
21 |
Partially correct |
1 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 |
1 ms |
212 KB |
Output is partially correct |
25 |
Partially correct |
0 ms |
212 KB |
Output is partially correct |
26 |
Partially correct |
1 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 |
1 ms |
212 KB |
Output is partially correct |
30 |
Partially correct |
1 ms |
304 KB |
Output is partially correct |
31 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
32 |
Partially correct |
1 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 |
296 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 |
0 ms |
212 KB |
Output is partially correct |
40 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |