Помогите с задачей можно либо на python 3.7 либо c++.
Условие
Как вы уже поняли, у Феофана множество увлечений. И ещё одна страсть Феофана - это шахматы. Также, Феофан обожает необычные футболки. Он решил совместить и то, и другое, и хочет заказать себе в магазине пошив футболки с принтом шахматного поля N на N клеток. Он даже подготовил файл с шаблоном принта, но пока мальчик отоходил заваривать себе чай, на клавиатуру его ноутбука залез любопытный кот Борис и понажимал некоторые кнопки мягкими лапками. Теперь Феофан хочет понять, уцелел ли его принт или рисунок шахматного поля на нём оказался нарушен?
Формат входных данных
В первой строке вводится число N(1 ≤ N ≤ 100)~-- размер принта. В следующих N строках вводится по N чисел 0 или 1~-- белого или чёрного цвета клетка,
соответственно.
Формат выходных данных
Выведите слово YES, если принт шахматного поля корректен, то есть состоит из чередующихся белых и чёрных клеток, либо NO, если чередование было нарушено. напиши код c++
пример1:
входные данные
2
1 0
0 1
выходные данные
YES
пример2:
входные данные
3
1 1 0
1 0 1
0 1 1
выходные данные
NO
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
vector<vector<int>> grid(N, vector<int>(N));
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
cin >> grid[i][j];
}
}
bool correct = true;
if (N > 0) {
int first_cell_val = grid[0][0];
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
int expected_val = first_cell_val ^ ((i + j) % 2);
if (grid[i][j] != expected_val) {
correct = false;
break;
}
}
if (!correct) {
break;
}
}
}
if (correct) {
cout << "YES." << endl;
} else {
cout << "NO." << endl;
}
return 0;
}
Если работает не так как нужно код, сразу пиши что именно не так
выглядит правдободно, если без нейронки ты не мучай себя, используй using namespace std;
данный код работает за n^2 / 2
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n; cin >> n;
vector <vector <int>> a(n, vector <int> (n));
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
{
int num; cin >> num;
a[i][j] = num;
}
// заполнили матрицу (шахматное поле)
for (int i = 0; i < n / 2; ++i)
for (int j = 0; j < n; ++j)
{
if (a[i][j] != a[n - i - 1][n - j - 1])
{
cout << "NO";
return 0;
}
}
// проверяет зеркально элементы с a[0][0] по a[n - 1][n - 1], потом a[0][1] по a[n - 1][n - 2] и тд
cout << "YES";
return 0;
} берешь два for проверяешь если соседние клетки одинаковые или диагональ совпала то пишешь no иначе yes
пиши вот так на c++ короче пробеги по клеткам если соседи одинаковые сразу печатай no если нет то yes
бери два вложенных for сравнивай текущую клетку с соседями по горизонтали и вертикали если одинаковые выводи no иначе yes
бери первый элемент как старт потом проверяй по очереди соседей чтоб отличались и если где то не так сразу no иначе yes
бери n читaй матрицу проверяй соседние разностям если где-то два одинаковых то печатай no иначе да
Не знаю про это ничего)
чатгпт или дипсик
друг, если бы мне нейронка не выдала бы говнокод я бы сюда даже не заходил
Python 3.7:
def solve():
n = int(input())
board = []
for _ in range(n):
row = list(map(int, input().split()))
board.append(row)
correct = True
for i in range(n):
for j in range(n):
expected_color = (i + j) % 2
if board[i][j] != expected_color:
correct = False
break
if not correct:
break
if correct:
print("YES")
else:
print("NO")
solve() при
2
1 0
0 1
выдаёт NO. неправильно