Submission #961626

#TimeUsernameProblemLanguageResultExecution timeMemory
961626PringRed-blue table (IZhO19_stones)C++17
100 / 100
23 ms3420 KiB
#include <bits/stdc++.h>
using namespace std;

#ifdef MIKU
string dbmc = "\033[1;38;2;57;197;187m", dbrs = "\033[0m";
#define debug(x...) cout << dbmc << "[" << #x << "]: ", dout(x)
void dout() { cout << dbrs << endl; }
template <typename T, typename ...U>
void dout(T t, U ...u) { cout << t << (sizeof...(u) ? ", " : ""); dout(u...); } 
#else
#define debug(...) 39
#endif

#define fs first
#define sc second
#define mp make_pair
#define FOR(i, j, k) for (int i = j, Z = k; i < Z; i++)
using ll = long long;
typedef pair<int, int> pii;

const int MXN = 1005;
int n, m;
char c[MXN][MXN], d[MXN][MXN];

int ch(int n, int m, char c[][MXN]) {
	FOR(i, 0, n) FOR(j, 0, m) c[i][j] = '+';
	int y = n / 2 + 1;
	int x = (m - 1) / 2 * n / y;
	int t = 0;
	FOR(j, 0, x) {
		FOR(i, 0, y) {
			c[t][j] = '-';
			if (++t == n) t = 0;
		}
	}
	return n + x;
}

void miku() {
	cin >> n >> m;
	int a = ch(n, m, c);
	int b = ch(m, n, d);
	if (a < b) {
		FOR(i, 0, n) FOR(j, 0, m) c[i][j] = ('+' ^ '-' ^ d[j][i]);
	}
	cout << max(a, b) << '\n';
	FOR(i, 0, n) {
		FOR(j, 0, m) cout << c[i][j];
		cout << '\n';
	}
}

int32_t main() {
	cin.tie(0) -> sync_with_stdio(false);
	cin.exceptions(cin.failbit);
	int t;
	cin >> t;
	while (t--) miku();
	return 0;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...