Submission #593489

# Submission time Handle Problem Language Result Execution time Memory
593489 2022-07-11T09:05:38 Z gagik_2007 Scales (IOI15_scales) C++17
45.4545 / 100
1 ms 304 KB
#include "scales.h"
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <ctime>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <limits>
#include <iomanip>
#include <unordered_set>
#include <unordered_map>
#include <random>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef ll itn;

#define ff first
#define ss second

ll n;
const ll INF = 1e18;
const ll MOD = 1e9 + 7;
const ll MOD2 = 998244353;
const ll MOD3 = 32768;
const ll N = 100007;
ll ttt;
int ans[6];

class Xumb {
public:
	int L;
	int M;
	int H;
	int sum;
	int cnt;
	Xumb() {
		L = M = H = -1;
		sum = 0;
		cnt = 0;
	}
	Xumb(int s) {
		sum = s;
		cnt = 0;
	}
	Xumb(int l, int m, int s) {
		L = l;
		M = m;
		sum = s;
		H = calc_h();
		cnt = 0;
	}
	int calc_h() {
		return sum - L - M;
	}
	int get_num() {
		if (cnt == 0)return L;
		else if (cnt == 1)return M;
		else if (cnt == 2)return H;
		else return -1;
	}
};

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

void orderCoins() {
	Xumb a(getLightest(1, 2, 3), getMedian(1, 2, 3), 1 + 2 + 3);
	Xumb b(getLightest(4, 5, 6), getMedian(4, 5, 6), 4 + 5 + 6);
	int ind = 0;
	while (ind < 4 && a.get_num() != -1 && b.get_num() != -1) {
		if (a.cnt < 2) {
			ans[ind] = getLightest(a.get_num(), a.H, b.get_num());
		}
		else {
			ans[ind] = getLightest(a.get_num(), b.H, b.get_num());
		}
		if (ans[ind] == a.get_num())a.cnt++;
		else b.cnt++;
		ind++;
	}
	if (a.get_num() == -1) {
		while (b.get_num() != -1) {
			ans[ind] = b.get_num();
			b.cnt++;
			ind++;
		}
	}
	else if (b.get_num() == -1) {
		while (a.get_num() != -1) {
			ans[ind] = a.get_num();
			a.cnt++;
			ind++;
		}
	}
	else {
		for (int i = 1; i <= 6; i++) {
			if (i != a.get_num() && i != b.get_num()) {
				ans[5] = getHeaviest(i, a.get_num(), b.get_num());
				ans[4] = a.get_num() + b.get_num() - ans[5];
				answer(ans);
				return;
			}
		}
	}
	answer(ans);
}
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 212 KB Output is partially correct
2 Partially correct 1 ms 296 KB Output is partially correct
3 Partially correct 1 ms 212 KB Output is partially correct
4 Partially correct 1 ms 212 KB Output is partially correct
5 Partially correct 1 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 212 KB Output is partially correct
9 Partially correct 1 ms 212 KB Output is partially correct
10 Partially correct 1 ms 212 KB Output is partially correct
11 Partially correct 1 ms 296 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 1 ms 212 KB Output is partially correct
15 Partially correct 1 ms 212 KB Output is partially correct
16 Partially correct 0 ms 296 KB Output is partially correct
17 Partially correct 1 ms 296 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 304 KB Output is partially correct
21 Partially correct 1 ms 212 KB Output is partially correct
22 Partially correct 1 ms 212 KB Output is partially correct
23 Partially correct 0 ms 212 KB Output is partially correct
24 Partially correct 1 ms 300 KB Output is partially correct
25 Partially correct 1 ms 300 KB Output is partially correct
26 Partially correct 1 ms 300 KB Output is partially correct
27 Partially correct 1 ms 212 KB Output is partially correct
28 Partially correct 1 ms 212 KB Output is partially correct
29 Partially correct 1 ms 296 KB Output is partially correct
30 Partially correct 1 ms 212 KB Output is partially correct
31 Partially correct 1 ms 304 KB Output is partially correct
32 Partially correct 1 ms 212 KB Output is partially correct
33 Partially correct 0 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 296 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 0 ms 300 KB Output is partially correct