Submission #410628

#TimeUsernameProblemLanguageResultExecution timeMemory
4106288e7Red-blue table (IZhO19_stones)C++14
100 / 100
59 ms2272 KiB
//Challenge: Accepted
#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
#include <stack>
#include <set>
#include <assert.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace std;
using namespace __gnu_pbds;
void debug() {cout << endl;}
template <class T, class ...U> void debug(T a, U ... b) { cout << a << " "; debug(b...);}
template <class T> void pary(T l, T r) {
	while (l != r) {cout << *l << " ";l++;}
	cout << endl;
}
#define ll long long
#define maxn 1005
#define mod 1000000007
#define pii pair<int, int>
#define ff first
#define ss second
#define io ios_base::sync_with_stdio(0);cin.tie(0);
bool ans[maxn][maxn];
int main() {
	io
	int t;
	cin >> t;
	while (t--) {
		int n, m;
		cin >> n >> m;
		pii best = {0, 0};
		for (int a = 0;a <= n;a++) {
			for (int b = 0;b <= m;b++) {
				bool poss = 0;
				if (a == 0 || b == 0) poss = 1;
				else {
					int x = m / 2 + 1 - (m - b), y = (a - (n / 2 + 1 - (n - a))); // >= x per row, <= y per col
					if ((a * x + b - 1) / b <= y) {
						//debug(a, b, x, y);
						poss = 1; 
					}
				}
				if (poss) {	
					if (a + b > best.ff + best.ss) {
						best = make_pair(a, b);
					}	
				}	
			}
		}
		cout << best.ff + best.ss << "\n";
		for (int i = 0;i < maxn;i++) {
			for (int j = 0;j < maxn;j++) ans[i][j] = 0;
		}	
		for (int i = 0;i < best.ff;i++) {
			for (int j = best.ss;j < m;j++) ans[i][j] = 1;
		}
		int x = m / 2 + 1 - (m - best.ss);
		for (int i = 0;i < best.ff * x;i++) {
			ans[i / x][i % best.ss] = 1;
		}
		for (int i = 0;i < n;i++) {
			for (int j = 0;j < m;j++) cout << (ans[i][j] ? '+' : '-');
			cout << "\n";
		}
	}		
}
#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...