145572025-01-16 07:21:38RRoliFőzet készítéscpp17Wrong answer 0/5010ms508 KiB
#include <bits/stdc++.h>
using namespace std;

bool m[32][32];

bool lnko(int a, int b) {
	int mm = a%b;
	while(mm != 0) {
		a = b;
		b = mm;
		mm = a%b;
	}
	if(b == 1) return true;
	return false;
}

int kov(int a, int b) {
	b++;
	while(!m[a][b]) b++;
	return b;
}

int elo(int a, int b) {
	b--;
	while(!m[a][b]) b--;
	return b;
}

int main() {
	for(int i = 1; i <= 31; i++) {
		m[i][0] = 1;
		for(int j = 1; j <= 31; j++)
			m[i][j] = lnko(i, j);
	}

	int t;
	cin >> t;
	while(t--) {
		int a, b;
		cin >> a >> b;
		if(a > b) swap(a, b);

		vector<int> v(min(a+1, 32), 0);
		int o = 0, p = 1, lk = 0;
		while(lk != INT_MAX) {
			lk = INT_MAX;
			int x = -1000, y = 1000;
			for(int i = 1; i <= p; i++) {
				int j = kov(i, v[i]);
				if(a < b) {
					if(i <= j && i + j < lk && (a-i >= 0 && b-j >= 0)) {
						lk = i + j;
						x = i;
						y = j;
					}
				} else if(a > b) {
					if(i >= j && i + j < lk && (a-i >= 0 && b-j >= 0)) {
						lk = i + j;
						x = i;
						y = j;
					}
				} else {
					if(i + j < lk || (i + j == lk && abs(i-j) < abs(x-y)) && (a-i >= 0 && b-j >= 0)) {
						lk = i + j;
						x = i;
						y = j;
					}
				}
			}
			if(lk != INT_MAX) {
				v[x] = y;
				o++;
				a -= x;
				b -= y;
				if(x == p) p++;
			}
		}

		cout << o-1 << '\n';
	}

	return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Accepted0/01ms316 KiB
2Wrong answer0/06ms508 KiB
3Wrong answer0/31ms316 KiB
4Wrong answer0/21ms316 KiB
5Wrong answer0/32ms508 KiB
6Wrong answer0/21ms508 KiB
7Wrong answer0/36ms316 KiB
8Wrong answer0/26ms316 KiB
9Wrong answer0/36ms316 KiB
10Wrong answer0/26ms316 KiB
11Wrong answer0/210ms316 KiB
12Wrong answer0/210ms428 KiB
13Wrong answer0/210ms500 KiB
14Wrong answer0/29ms420 KiB
15Wrong answer0/210ms424 KiB
16Wrong answer0/210ms316 KiB
17Wrong answer0/210ms424 KiB
18Wrong answer0/29ms424 KiB
19Wrong answer0/210ms500 KiB
20Wrong answer0/310ms500 KiB
21Wrong answer0/310ms508 KiB
22Wrong answer0/310ms316 KiB
23Wrong answer0/310ms316 KiB