답안 #172659

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
172659 2020-01-02T09:46:16 Z LinusTorvaldsFan Red-blue table (IZhO19_stones) C++14
15 / 100
52 ms 2556 KB
#include <bits/stdc++.h>

using namespace std;

char f[2000][2000];

int ver[2000];
int hor[2000];


int main() {
	int t;
	cin>>t;
	for(;t;t--){
		int n,m;
		cin>>n>>m;
		int ans=max(n,m);
		if(n>m){
			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					f[i][j]='+';
					hor[i]=m;
				}
			}
			int p=0;
			for(int j=0;j<m;j++){
				int t=0;
				for(int i=0;i<n;i++){
					if(t>=n/2+1)break;
					if(hor[p]-1>=m/2+1){
						f[i][j]='-';
						hor[p]--;
						t++;
					}
					p++;
					p%=n;
				}
				if(t==n/2+1)ans++;
			}
				
		} else{
			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					f[i][j]='-';
					ver[j]=n;
				}
			}
			int p=0;
			for(int i=0;i<n;i++){
				int t=0;
				for(int j=0;j<m;j++){
					if(t>=m/2+1)break;
					if(ver[p]-1>=n/2+1){
						f[i][p]='+';
						ver[p]--;
						t++;
					}
					p++;
					p%=m;
				}
				if(t==m/2+1)ans++;
			}
		}
		cout<<ans<<endl;
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				cout<<f[i][j];
			}
			cout<<"\n";
		}
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 376 KB in the table A+B is not equal to 5
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 504 KB in the table A+B is not equal to 5
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 376 KB in the table A+B is not equal to 5
# 결과 실행 시간 메모리 Grader output
1 Incorrect 52 ms 1592 KB in the table A+B is not equal to 116
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 50 ms 1652 KB Output is correct
2 Correct 42 ms 2556 KB Output is correct
3 Correct 41 ms 2296 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 2 ms 376 KB in the table A+B is not equal to 5