Submission #502052

#TimeUsernameProblemLanguageResultExecution timeMemory
502052MazaalaiRed-blue table (IZhO19_stones)C++17
100 / 100
36 ms2220 KiB
#include <bits/stdc++.h> 
#define pb push_back
#define ALL(x) x.begin(),x.end()
using namespace std;
int n, m;
string s = "+-";
const int N = 1e3+1;
char ans[N][N];
void go() {
	bool flip = 0;
	cin >> n >> m;
	if (n > m) {
		flip = 1;
		swap(n, m);
		reverse(ALL(s));
	}
	for (int i = 0; i < n; i++)
	for (int j = 0; j < m; j++) ans[i][j] = s[1];
	int changeCnt = m * ((n-1)/2), curLine = 0, curPick = 0;
	for (int i = 0; changeCnt>0; i++) {
		ans[curLine][i%m] = s[0];
		changeCnt--, curPick++;
		if (curPick*2 > m) {
			curLine++;
			curPick = 0;
		}
	}
	cout << m + curLine <<'\n';
	if (flip) swap(n, m), reverse(ALL(s));
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) cout << (flip ? ans[j][i] : ans[i][j]);
		cout << '\n';
	}
}
signed main() {
	// freopen("in.txt", "r", stdin);
	// freopen("out.txt", "w", stdout);
	int T; cin >> T;
	while(T--) go();
}
#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...