답안 #330409

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
330409 2020-11-25T07:39:29 Z AlexLuchianov Red-blue table (IZhO19_stones) C++14
11 / 100
17 ms 1388 KB
#include <iostream>
#include <vector>

using ll = long long;
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) < (b)) ? (b) : (a))

bool valid(int red, int blue, int n, int m) {
  if(red == 0 || blue == 0)
    return true;
  int part = std::max(0, (m + 1) / 2 - (m - blue));
  int part2 = std::max(0, (n + 1) / 2 - (n - red));
  if(part <= blue) {
    int slots = (part * red + (blue - 1)) / blue;
    if(slots + part2 <= red)
      return true;
  }
  return false;
}

void solve() {
  int n, m;
  std::cin >> n >> m;
  int x = 0, y = 0;
  for(int i = 0; i <= n; i++)
    for(int j = 0; j <= m; j++)
      if(valid(i, j, n, m) == true && x + y < i + j) {
        x = i;
        y = j;
      }
  std::cout << x + y << '\n';
  int ptr = 0; 
  int part = std::max(0, (m + 1) / 2 - (m - y));
  
  for(int i = 0; i < x; i++) {
    std::string s;
    s.resize(m);
    for(int j = 0; j < m; j++)
      s[j] = '-';
    for(int j = 0; j < part; j++) {
      s[ptr] = '+';
      ptr = (ptr + 1) % y;
    }
    for(int j = y; j < m; j++)
      s[j] = '+';
    std::cout << s << '\n';
  }
  for(int i = x; i < n; i++) {
    std::string s;
    s.resize(m);
    for(int j = 0; j < m; j++)
      s[j] = '-';
    std::cout << s << '\n';
  }
}

int main() {
  int t;
  std::cin >> t;
  for(int testcase = 1; testcase <= t; testcase++)
    solve();
  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 1 ms 364 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 364 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 1 ms 364 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 1388 KB Output is correct
2 Correct 14 ms 1280 KB Output is correct
3 Correct 12 ms 1132 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 1388 KB in the table A+B is not equal to 48
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 1 ms 364 KB in the table A+B is not equal to 2