# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
382204 | BartolM | Red-blue table (IZhO19_stones) | C++17 | 81 ms | 8684 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 poseb56() {
for (int i=0; i<n; ++i) {
for (int j=m/2; j<m; ++j) mat[i][j]=1;
int j=m/2+i%3;
mat[i][j]=0;
}
}
void pos_stup() {
for (int i=0; i<n; ++i) {
for (int j=0; j<m/2-!(m%2); ++j) mat[i][j]=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 (n==4) poseban_4();
else if (m<=4) pos_stup();
else if (m<=6) poseb56();
else if (m>=3) solve();
if (fl) rotiraj();
ispis();
reset();
if (fl) {
swap(n, m);
reset();
}
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |