제출 #599046

#제출 시각아이디문제언어결과실행 시간메모리
599046PlurmRed-blue table (IZhO19_stones)C++11
11 / 100
7 ms2980 KiB
#include <bits/stdc++.h> using namespace std; char table[1024][1024]; void build(int n, int m) { if (n == 1) { for (int j = 0; j < m; j++) table[0][j] = '-'; table[0][m] = '\0'; return; } else if (m == 1) { for (int i = 0; i < n; i++) { table[i][0] = '+'; table[i][1] = '\0'; } return; } else if (n % 2 == 0) { for (int i = 0; i <= n / 2; i++) { for (int j = 0; j < m; j++) { table[i][j] = '-'; } table[i][m] = '\0'; } for (int i = n / 2 + 1; i < n; i++) { for (int j = 0; j < m; j++) { table[i][j] = '+'; } table[i][m] = '\0'; } return; } else if (m % 2 == 0) { for (int i = 0; i < n; i++) { for (int j = 0; j <= m / 2; j++) { table[i][j] = '+'; } for (int j = m / 2; j < m; j++) { table[i][j] = '-'; } table[i][m] = '\0'; } return; } for (int i = 0; i < n / 2; i++) { for (int j = 0; j < m - 1; j++) { table[i][j] = j < (m - 1) / 2 ? '-' : '+'; } table[i][m - 1] = '+'; table[i][m] = '\0'; } for (int i = n / 2; i < n - 1; i++) { for (int j = 0; j < m - 1; j++) { table[i][j] = j < (m - 1) / 2 ? '+' : '-'; } table[i][m - 1] = '+'; table[i][m] = '\0'; } for (int j = 0; j < m - 1; j++) table[n - 1][j] = '-'; table[n - 1][m - 1] = '+'; table[n - 1][m] = '\0'; } char tmp[1024][1024]; void transpose(int n, int m) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { tmp[j][i] = '+' ^ '-' ^ table[i][j]; } } for (int j = 0; j < m; j++) tmp[j][n] = '\0'; for (int i = 0; i < m; i++) { strcpy(table[i], tmp[i]); } } int count(int n, int m) { int cc = 0; for (int i = 0; i < n; i++) { int uc = 0; for (int j = 0; j < m; j++) { if (table[i][j] == '+') uc++; } if (uc > m - uc) cc++; } for (int j = 0; j < m; j++) { int uc = 0; for (int i = 0; i < n; i++) { if (table[i][j] == '-') uc++; } if (uc > n - uc) cc++; } return cc; } int main() { int t; scanf("%d", &t); while (t--) { int n, m; scanf("%d%d", &n, &m); if (n > m) { build(m, n); transpose(m, n); } else { build(n, m); } printf("%d\n", count(n, m)); for (int i = 0; i < n; i++) { printf("%s\n", table[i]); } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

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