Submission #64139246


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second

typedef long long LL;
typedef vector<int> VI;
typedef vector<LL> VL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
typedef double db;

const int mod = 998244353;

int add(int a, int b)
{
	return a + b < mod ? a + b : a + b - mod;
}

int sub(int a, int b)
{
	return a - b >= 0 ? a - b : a - b + mod;
}

int mult(int a, int b)
{
	return (LL)a * b % mod;
}

int binpow(int a, LL n)
{
	int res = 1;
	while (n)
	{
		if (n & 1)
			res = mult(res, a);
		a = mult(a, a);
		n /= 2;
	}
	return res;
}

template<typename T>
void updMin(T& a, T b)
{
	a = min(a, b);
}

template<typename T>
void updMax(T& a, T b)
{
	a = max(a, b);
}

const int C = 1e7;

void solve()
{
	int r, b;
	cin >> r >> b;
	if (r % 2 == 1 || (r == 0 && b % 2 == 1))
	{
		cout << "No\n";
		return;
	}
	cout << "Yes\n";
	int x = C, y = C;
	if (r == 0)
	{
		FOR(i, 0, b / 2)
		{
			if (i > 0)
			{
				x++;
				y++;
			}
			cout << "B " << x << " " << y << "\n";
		}
		x--;
		y++;
		FOR(i, 0, b / 2)
		{
			if (i > 0)
			{
				x--;
				y--;
			}
			cout << "B " << x << " " << y << "\n";
		}
		assert(x == C - 1 && y == C + 1);
		return;
	}
	FOR(i, 0, r / 2)
	{
		if (i > 0)
			x++;
		cout << "R " << x << " " << y << "\n";
	}
	y++;
	FOR(i, 0, r / 2)
	{
		if (i > 0)
			x--;
		cout << "R " << x << " " << y << "\n";
	}
	assert(x == C && y == C + 1);
	if (b == 0)
		return;
	int cnt1, cnt2;
	if (b % 2 == 1)
	{
		x--;
		cnt1 = (b + 1) / 2;
		cnt2 = b / 2;
	}
	else
	{
		y++;
		cnt1 = b / 2 + 1;
		cnt2 = b / 2 - 1;
	}
	assert(cnt1 + cnt2 == b);
	FOR(i, 0, cnt1)
	{
		if (i > 0)
		{
			x--;
			y--;
		}
		cout << "B " << x << " " << y << "\n";
	}
	x++;
	y--;
	FOR(i, 0, cnt2)
	{
		if (i > 0)
		{
			x++;
			y++;
		}
		cout << "B " << x << " " << y << "\n";
	}
}

int main()
{
	ios::sync_with_stdio(0); 
	cin.tie(0);
	int t;
	cin >> t;
	while (t--)
		solve();
	return 0;
}

Submission Info

Submission Time
Task C - Hamiltonian Pieces
User mshcherba
Language C++ 20 (gcc 12.2)
Score 600
Code Size 2292 Byte
Status AC
Exec Time 25 ms
Memory 4500 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 1
AC × 50
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, 01_handmade_01.txt, 01_handmade_02.txt, 01_handmade_03.txt, 02_small_01.txt, 03_medium_01.txt, 03_medium_02.txt, 03_medium_03.txt, 03_medium_04.txt, 03_medium_05.txt, 03_medium_06.txt, 03_medium_07.txt, 03_medium_08.txt, 03_medium_09.txt, 03_medium_10.txt, 04_large_01.txt, 04_large_02.txt, 04_large_03.txt, 04_large_04.txt, 04_large_05.txt, 05_max_01.txt, 05_max_02.txt, 05_max_03.txt, 05_max_04.txt, 05_max_05.txt, 05_max_06.txt, 05_max_07.txt, 05_max_08.txt, 05_max_09.txt, 05_max_10.txt, 06_sum_max_01.txt, 06_sum_max_02.txt, 06_sum_max_03.txt, 06_sum_max_04.txt, 06_sum_max_05.txt, 06_sum_max_06.txt, 06_sum_max_07.txt, 06_sum_max_08.txt, 06_sum_max_09.txt, 06_sum_max_10.txt, 07_R_or_B_zero_01.txt, 07_R_or_B_zero_02.txt, 07_R_or_B_zero_03.txt, 07_R_or_B_zero_04.txt, 07_R_or_B_zero_05.txt, 07_R_or_B_zero_06.txt, 07_R_or_B_zero_07.txt, 07_R_or_B_zero_08.txt, 07_R_or_B_zero_09.txt, 07_R_or_B_zero_10.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3460 KiB
01_handmade_01.txt AC 23 ms 3416 KiB
01_handmade_02.txt AC 25 ms 4500 KiB
01_handmade_03.txt AC 23 ms 4420 KiB
02_small_01.txt AC 12 ms 3332 KiB
03_medium_01.txt AC 14 ms 3528 KiB
03_medium_02.txt AC 10 ms 3420 KiB
03_medium_03.txt AC 12 ms 3524 KiB
03_medium_04.txt AC 14 ms 3472 KiB
03_medium_05.txt AC 15 ms 3532 KiB
03_medium_06.txt AC 11 ms 3388 KiB
03_medium_07.txt AC 11 ms 3468 KiB
03_medium_08.txt AC 11 ms 3528 KiB
03_medium_09.txt AC 12 ms 3392 KiB
03_medium_10.txt AC 13 ms 3464 KiB
04_large_01.txt AC 13 ms 3528 KiB
04_large_02.txt AC 21 ms 3804 KiB
04_large_03.txt AC 13 ms 3464 KiB
04_large_04.txt AC 1 ms 3416 KiB
04_large_05.txt AC 19 ms 3780 KiB
05_max_01.txt AC 1 ms 3416 KiB
05_max_02.txt AC 23 ms 4424 KiB
05_max_03.txt AC 24 ms 4084 KiB
05_max_04.txt AC 1 ms 3448 KiB
05_max_05.txt AC 22 ms 4132 KiB
05_max_06.txt AC 1 ms 3520 KiB
05_max_07.txt AC 1 ms 3464 KiB
05_max_08.txt AC 1 ms 3456 KiB
05_max_09.txt AC 1 ms 3320 KiB
05_max_10.txt AC 1 ms 3460 KiB
06_sum_max_01.txt AC 6 ms 3388 KiB
06_sum_max_02.txt AC 18 ms 3584 KiB
06_sum_max_03.txt AC 12 ms 3400 KiB
06_sum_max_04.txt AC 22 ms 3968 KiB
06_sum_max_05.txt AC 12 ms 3388 KiB
06_sum_max_06.txt AC 22 ms 4064 KiB
06_sum_max_07.txt AC 13 ms 3420 KiB
06_sum_max_08.txt AC 22 ms 4024 KiB
06_sum_max_09.txt AC 3 ms 3396 KiB
06_sum_max_10.txt AC 1 ms 3464 KiB
07_R_or_B_zero_01.txt AC 13 ms 3456 KiB
07_R_or_B_zero_02.txt AC 20 ms 3792 KiB
07_R_or_B_zero_03.txt AC 2 ms 3428 KiB
07_R_or_B_zero_04.txt AC 23 ms 4284 KiB
07_R_or_B_zero_05.txt AC 6 ms 3444 KiB
07_R_or_B_zero_06.txt AC 1 ms 3460 KiB
07_R_or_B_zero_07.txt AC 1 ms 3404 KiB
07_R_or_B_zero_08.txt AC 21 ms 4208 KiB
07_R_or_B_zero_09.txt AC 1 ms 3468 KiB
07_R_or_B_zero_10.txt AC 3 ms 3324 KiB