Submission #1222858

#TimeUsernameProblemLanguageResultExecution timeMemory
1222858fermatRed-blue table (IZhO19_stones)C++20
100 / 100
34 ms5188 KiB
#include <bits/stdc++.h>
    
#define fr first
#define sc second
#define mk make_pair
#define pb push_back
#define all(s) s.begin(), s.end()
    
using namespace std;

const int N = 1005;

int tests, n, m, a[N][N], cn[N], ans;

void Fill (int x) {
 for (int i = 1; i <= n; i++) {
  for (int j = 1; j <= m; j++) {
   a[i][j] = x;
  }
 }
}
int Nxt(int x, int o) {
 x++;
 if (x > o) x = 1;
 return x;
}

main() {
 cin >> tests;
 while (tests--) {
  memset(cn, 0, sizeof(cn) );
  scanf("%d%d", &n, &m);
  int l = 1;
  if (n >= m) {
   ans = n;
   Fill(0);
   for (int i = 1; i <= m; i++) {
    bool ok = 0;
    for (int j = 0; j < n / 2 + 1; j++) {
     if (cn[l] + 1 >= (m + 1) / 2) {
      ok = 1;
      break;
     }
     a[l][i] = 1; cn[l]++;
     l = Nxt(l, n);
    }
    if (ok) break;
    ans++;
   }
  } else {
   ans = m;
   Fill(1);
   for (int i = 1; i <= n; i++) {
    bool ok = 0;
    for (int j = 0; j < m / 2 + 1; j++) {
     if (cn[l] + 1 >= (n + 1) / 2) {
      ok = 1;
      break;
     }
     a[i][l] = 0; cn[l]++;
     l = Nxt(l, m);
    }
    if (ok) break;
    ans++;
   }
  }
  printf("%d\n", ans);
  for (int i = 1; i <= n; i++) {
   for (int j = 1; j <= m; j++) {
    printf(a[i][j] == 0 ? "+" : "-");
   }
   printf("\n");
  }
 }
}

Compilation message (stderr)

stones.cpp:28:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   28 | main() {
      | ^~~~
stones.cpp: In function 'int main()':
stones.cpp:32:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |   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...