Mania de Ímpar
Problem LinkSolution by TioPatinhas — 100 pts
Code / Notes
#include <bits/stdc++.h>
using namespace std;
int ans1;
int ans2;
vector<vector<int>>A;
vector<vector<int>>B;
vector<vector<int>>C;
vector<vector<int>>D;
int comparar(int i, int j) {
if ((A[i][j])%2 == (B[i][j])%2) {
} else {
ans1++;
A[i][j]++;
}
if ((D[i][j])%2 == (C[i][j])%2) {
} else {
ans2++;
D[i][j]++;
}
return 0;
}
int main() {
int N, M;
cin >> N >> M;
ans1 = 0;
ans2 = 0;
A.resize(N, vector<int>(M));
B.resize(N, vector<int>(M));
C.resize(N, vector<int>(M));
D.resize(N, vector<int>(M));
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
int x_i_j;
cin >> x_i_j;
A[i][j] = D[i][j] = x_i_j;
if (i%2 == j%2) {
B[i][j] = 0;
C[i][j] = 1;
} else {
B[i][j] = 1;
C[i][j] = 0;
}
comparar(i,j);
}
}
if (ans1 > ans2) {
cout << ans2 << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout << D[i][j] << ' ';
}
cout << endl;
}
} else {
cout << ans1 << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout << A[i][j] << ' ';
}
cout << endl;
}
}
}
// Observe os dois padrões de tabuleiro
// Pode criar dois ints
// esperado0 e esperado1 onde cada um é um dos tipos esperados
// faz um for e compara eles, depois só adiciona uma gota pelo if
Last updated 1 month, 3 weeks ago