Submission #330979

# Submission time Handle Problem Language Result Execution time Memory
330979 2020-11-27T02:37:34 Z tavhid Red-blue table (IZhO19_stones) C++14
27 / 100
103 ms 1388 KB
#include <bits/stdc++.h>

//#pragma GCC optimize("Ofast")
//1.0 * clock() / CLOCKS_PER_SEC

#define fi first
#define se second
#define int long long int
#define dl double long

using namespace std;

const int N = 1e6 + 7;
const int INF = 1e10 + 7;
const int mod = 998244353;

//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

void solve1()
{
    int n, m;
    cin >> n >> m;
    if(n < 3 && n == min(n, m)){
        cout << m << endl;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                cout << '-';
            }
            cout << endl;
        }
        return;
    }
    if(m < 3 && m == min(n, m)){
        cout << n << endl;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                cout << '+';
            }
            cout << endl;
        }
        return;
    }
    if(m >= n && (m < 5 || n < 5)){
        int x = m / 2 + 1;
        int y = n / 2 - 1;
        if(n % 2 == 1)
            y++;
        bool f = true;
        if(x * 2 - m > y)
            f = false;
        cout << y * 2 + (m - x) * 2 + (- y + x * 2 - m) * !f << endl;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if((j < x && i < y) || (j + 1 > m - x && i + 1 > n - y && f)){
                    cout << '+';
                }else{
                    cout << '-';
                }
            }
            cout << endl;
        }
        return;
    }else if(n > m && (m < 5 | n < 5)){
        int x = m / 2 - 1;
        if(m % 2 == 1)
            x++;
        int y = n / 2 + 1;
        bool f = true;
        if(y * 2 - n > x)
            f = false;
        cout << x * 2 + (n - y) * 2 + (- x + y * 2 - n) * !f << endl;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if((j < x && i < y) || (j + 1 > m - x && i + 1 > n - y && f)){
                    cout << '-';
                }else{
                    cout << '+';
                }
            }
            cout << endl;
        }
        return;
    }
    if(m >= n){
        cout << m + (n + 1) / 2 << endl;
        for(int i = 0; i < (n + 1) / 2; i++){
            for(int j = 0; j < m; j++){
                if((i + j) % ((n + 1) / 2) == 0){
                    cout << '-';
                }else{
                    cout << '+';
                }
            }
            cout << endl;
        }
        for(int i = (n + 1) / 2; i < n; i++){
            for(int j = 0; j < m; j++){
                cout << '-';
            }
            cout << endl;
        }
    }else{
        cout << n + (m + 1) / 2 << endl;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < (m + 1) / 2; j++){
                if((i + j) % ((m + 1) / 2) == 0){
                    cout << '+';
                }else{
                    cout << '-';
                }
            }
            cout << endl;
        }
        for(int i = 0; i < n; i++){
            for(int j = (m + 1) / 2; j < m; j++){
                cout << '+';
            }
            cout << endl;
        }
    }
}

int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0); srand(time(0));
    //freopen( "input.txt" , "r" , stdin );
    //freopen( "output.txt" , "w" , stdout );
	//freopen( "cupboard.in" , "r" , stdin );
    //freopen( "cupboard.out" , "w" , stdout );

    int cghf = 1;cin >> cghf;
    while( cghf-- ){
        solve1();
    }
}

Compilation message

stones.cpp: In function 'void solve1()':
stones.cpp:63:26: warning: suggest parentheses around comparison in operand of '|' [-Wparentheses]
   63 |     }else if(n > m && (m < 5 | n < 5)){
      |                        ~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 12 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 12 ms 492 KB Output is correct
4 Incorrect 22 ms 364 KB Wrong answer
# Verdict Execution time Memory Grader output
1 Incorrect 103 ms 1388 KB Wrong answer
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 58 ms 1388 KB Wrong answer in test 24 24: 36 < 44
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 12 ms 492 KB Output is correct
4 Incorrect 22 ms 364 KB Wrong answer