Submission #382179

# Submission time Handle Problem Language Result Execution time Memory
382179 2021-03-26T16:16:41 Z BartolM Red-blue table (IZhO19_stones) C++17
0 / 100
2 ms 748 KB
#include <bits/stdc++.h>

using namespace std;

#define X first
#define Y second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <int, pii> pip;
typedef pair <pii, int> ppi;
typedef pair <ll, ll> pll;

const int INF=0x3f3f3f3f;
const int N=1005;

int n, m, fl;
int mat[N][N], pom[N][N], red[N], stup[N];

void mali_stup() {
    printf("%d\n", n);
}

void reset() {
    for (int i=0; i<n; ++i)
        for (int j=0; j<m; ++j) pom[i][j]=mat[i][j]=0;
    fl=0;
}

void rotiraj() {
    for (int i=0; i<n; ++i)
        for (int j=0; j<m; ++j)
            pom[j][m-i]=mat[i][j];
    swap(n, m);
    for (int i=0; i<n; ++i)
        for (int j=0; j<m; ++j)
            mat[i][j]=!pom[i][j];
}

void solve() {
    int gr_m=m-1-!(m%2);
    int gr_n=n-1-!(n%2);
    printf("%d\n", gr_m+gr_n);
    for (int i=0; i<gr_n; ++i) {
        for (int j=i%2; j<gr_m; j+=2) mat[i][j]=1;
    }
    for (int i=gr_n; i<n; ++i) {
        for (int j=0; j<m; ++j) mat[i][j]=1;
    }
}

void ispis() {
//    int sol=0;
//    for (int j=0; j<m; ++j) stup[j]=0;
//    for (int i=0; i<n; ++i) {
//        red[i]=0;
//        for (int j=0; j<m; ++j) {
//            red[i]+=!mat[i][j];
//            stup[j]+=mat[i][j];
//        }
//        sol+=red[i] > m/2;
//    }
//    for (int j=0; j<m; ++j) sol+=stup[j] > n/2;
//    printf("pravo: %d\n", sol);
    for (int i=0; i<n; ++i) {
        for (int j=0; j<m; ++j) printf("%c", mat[i][j] ? '-' : '+');
        printf("\n");
    }
}

int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        scanf("%d %d", &n, &m);

        fl=n<m;
        if (fl) swap(n, m);

        if (m<=2) mali_stup();
        else if (m==3) solve();
        else assert(0);

        if (fl) rotiraj();

        ispis();
        reset();
    }
    return 0;
}

Compilation message

stones.cpp: In function 'int main()':
stones.cpp:74:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   74 |     scanf("%d", &t);
      |     ~~~~~^~~~~~~~~~
stones.cpp:76:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   76 |         scanf("%d %d", &n, &m);
      |         ~~~~~^~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Runtime error 2 ms 492 KB Execution killed with signal 6
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 748 KB in the table A+B is not equal to 46
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Runtime error 2 ms 492 KB Execution killed with signal 6
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 492 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 492 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Runtime error 2 ms 492 KB Execution killed with signal 6