제출 #343603

#제출 시각아이디문제언어결과실행 시간메모리
343603Bill_00Red-blue table (IZhO19_stones)C++14
100 / 100
40 ms2284 KiB
#include <bits/stdc++.h>
#define MOD 1000000007
#define INF 100000000000000000
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define pp push
typedef long long ll;
using namespace std;
char ans[1001][1001];
int main(){
	ios_base::sync_with_stdio(NULL);
	cin.tie(NULL);
	cout.tie(NULL);
	int test;
	cin >> test;
	while(test--){
		int n,m;
		cin >> n >> m;
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++)
				ans[i][j]='+';
		}
		int k=max(n,m)+(min(n,m)-((min(n,m)/2)+1))*max(n,m)/(max(n,m)/2+1);
		cout << k << '\n';
		if(n>m){
			for(int i=m+n-k;i<m;i++){
				for(int j=0;j<=(n/2);j++){
					ans[(j+i*(n/2+1))%n][i]='-';
				}
			}
		}
		else{
			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					ans[i][j]='-';
				}
			}
			for(int i=m+n-k;i<n;i++){
				for(int j=0;j<=(m/2);j++){
					ans[i][(j+i*(m/2+1))%m]='+';
				}
			}
		}
		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...