#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (ll)(r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (ll)(l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;
bool edge(int n, int m)
{
if (n == 1) {
cout << m << '\n';
Loop (i,0,m)
cout << '-';
cout << '\n';
return 1;
}
if (m == 1) {
cout << n << '\n';
Loop (i,0,n)
cout << '+' << '\n';
return 1;
}
if (n == 2) {
cout << m << '\n';
Loop (i,0,m)
cout << '-';
cout << '\n';
Loop (i,0,m)
cout << '-';
cout << '\n';
return 1;
}
if (m == 2) {
cout << n << '\n';
Loop (i,0,n)
cout << "++" << '\n';
return 1;
}
return 0;
}
const int N = 2010;
int ans[N][N];
void myfill(int n, int m)
{
Loop (i,0,n) {
Loop (j,0,m)
ans[i+1][j+1] = (i+j)%m < m/2? 1: 0;
}
}
int mycount(int n, int m)
{
int x = 0;
Loop (i,0,n) {
int cnt = 0;
Loop (j,0,m)
cnt += ans[i][j] == 1;
x += cnt > m/2;
}
Loop (j,0,m) {
int cnt = 0;
Loop (i,0,n)
cnt += ans[i][j] == 0;
x += cnt > n/2;
}
return x;
}
void solve()
{
int n, m;
cin >> n >> m;
if (edge(n, m))
return;
Loop (j,0,m)
ans[0][j] = 0;
Loop (i,0,n)
ans[i][0] = 1;
if (n%2 == 0)
Loop (j,0,m)
ans[n-1][j] = 0;
if (m%2 == 0)
Loop (i,0,n)
ans[i][m-1] = 1;
myfill(n-1 & -2, m-1 & -2);
cout << mycount(n, m) << '\n';
Loop (i,0,n) {
Loop (j,0,m)
cout << "-+"[ans[i][j]];
cout << '\n';
}
}
int main()
{
cin.tie(0) -> sync_with_stdio(false);
int t;
cin >> t;
while (t--)
solve();
}
Compilation message
stones.cpp: In function 'void solve()':
stones.cpp:88:10: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
88 | myfill(n-1 & -2, m-1 & -2);
| ~^~
stones.cpp:88:20: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
88 | myfill(n-1 & -2, m-1 & -2);
| ~^~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Incorrect |
1 ms |
332 KB |
Wrong answer in test 4 4: 4 < 5 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Wrong answer in test 3 45: 25 < 46 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Incorrect |
1 ms |
332 KB |
Wrong answer in test 4 4: 4 < 5 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
27 ms |
1692 KB |
Wrong answer in test 97 21: 107 < 116 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
30 ms |
1852 KB |
Wrong answer in test 4 4: 4 < 5 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Incorrect |
1 ms |
332 KB |
Wrong answer in test 4 4: 4 < 5 |
3 |
Halted |
0 ms |
0 KB |
- |