Submission #382196

# Submission time Handle Problem Language Result Execution time Memory
382196 2021-03-26T16:52:35 Z BartolM Red-blue table (IZhO19_stones) C++17
38 / 100
64 ms 8684 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() {
    return;
}

void poseban_4() {
    for (int i=0; i<n; ++i) mat[i][0]=1;
}

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

void rotiraj() {
    for (int i=0; i<n; ++i)
        for (int j=0; j<m; ++j)
            pom[j][n-i-1]=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);
    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("%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) poseban_4();
        else if (n==4 || m==4) poseban_4();
        else if (m>=3) solve();

        if (fl) rotiraj();

        ispis();
        reset();
        if (fl) {
            swap(n, m);
            reset();
        }
    }
    return 0;
}

Compilation message

stones.cpp: In function 'int main()':
stones.cpp:77:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   77 |     scanf("%d", &t);
      |     ~~~~~^~~~~~~~~~
stones.cpp:79:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   79 |         scanf("%d %d", &n, &m);
      |         ~~~~~^~~~~~~~~~~~~~~~~
# 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 2 ms 748 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 2 ms 748 KB Output is correct
4 Incorrect 4 ms 748 KB Wrong answer in test 38 5: 40 < 41
# Verdict Execution time Memory Grader output
1 Correct 64 ms 2156 KB Output is correct
2 Correct 64 ms 8320 KB Output is correct
3 Correct 58 ms 8684 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 64 ms 2540 KB Wrong answer in test 6 6: 8 < 9
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 2 ms 748 KB Output is correct
4 Incorrect 4 ms 748 KB Wrong answer in test 38 5: 40 < 41