Submission #202111

#TimeUsernameProblemLanguageResultExecution timeMemory
202111ZwariowanyMarcinRed-blue table (IZhO19_stones)C++14
11 / 100
45 ms4984 KiB
#include <bits/stdc++.h>
#define LL long long
#define pb push_back
#define make_pair
#define ss(x) (int) x.size()
#define fi first
#define se second
#define cat(x) cerr << #x << " = " << x << endl

using namespace std;

const int nax = 1011;

int T, n, m;

int t[nax][nax];

int main() {
	scanf ("%d", &T);
	while (T--) {
		scanf ("%d%d", &n, &m);
		if (n == 1) {
			printf ("%d\n", m);
			for (int i = 1; i <= m; ++i)
				printf ("-");
			printf ("\n");
			continue;
		}
		if (m == 1) {
			printf ("%d\n", n);
			for (int i = 1; i <= n; ++i)
				printf ("+\n");
			printf ("\n");
			continue;
		}
		
		int ans = n + m - 2;
		
		int N = n;
		int M = m;
		
		if (N % 2 == 0) N--, ans--;
		if (M % 2 == 0) M--, ans--;
		
		for (int row = 1; row < N; ++row)
			for (int col = 1; col <= M; ++col) {
				if (col == M / 2 + 1) 
					t[row][col] = 1;
				else if (col < M / 2 + 1)
					t[row][col] = (row & 1);
				else
					t[row][col] = !(row & 1);
			}
			
		for (int col = 1; col <= M; ++col)
			t[N][col] = 0;
		
		if (n != N) {
			for (int col = 1; col <= m; ++col)
				t[n][col] = 0;
		}
		
		if (m != M) {
			for (int row = 1; row <= n; ++row)
				t[row][m] = 1;
		}
		
		printf ("%d\n", ans);
		
		for (int i = 1; i <= n; ++i) {
			for (int j = 1; j <= m; ++j) {
				printf ((t[i][j] == 1 ? "+" : "-"));
			}
			printf ("\n");
		}
	}			
	
	return 0;
}

Compilation message (stderr)

stones.cpp: In function 'int main()':
stones.cpp:19:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf ("%d", &T);
  ~~~~~~^~~~~~~~~~
stones.cpp:21:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%d%d", &n, &m);
   ~~~~~~^~~~~~~~~~~~~~~~
#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...