Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей можно либо на python 3.7 либо c++.

Дочка Мияги Знаток (275), закрыт 2 недели назад
Условие
Как вы уже поняли, у Феофана множество увлечений. И ещё одна страсть Феофана - это шахматы. Также, Феофан обожает необычные футболки. Он решил совместить и то, и другое, и хочет заказать себе в магазине пошив футболки с принтом шахматного поля 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
Лучший ответ
♡$ⴎG@r₱u₷sყ♡ Высший разум (328962) 2 недели назад
  #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;
}




Если работает не так как нужно код, сразу пиши что именно не так
Дочка МиягиЗнаток (275) 2 недели назад
выглядит правдободно, если без нейронки ты не мучай себя, используй using namespace std;
♡$ⴎG@r₱u₷sყ♡ Высший разум (328962) Дочка Мияги, изменил ответ
Остальные ответы
Илья Ротков Мыслитель (6460) 2 недели назад
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()
Дочка МиягиЗнаток (275) 2 недели назад
при
2
1 0
0 1
выдаёт NO. неправильно
Программист Просветленный (48568) 2 недели назад
чатгпт или дипсик
Дочка МиягиЗнаток (275) 2 недели назад
друг, если бы мне нейронка не выдала бы говнокод я бы сюда даже не заходил
Программист Просветленный (48568) Дочка Мияги, ну так перефразируй формально и сюда тоже так скинь
Вадим Матвеев Мастер (2055) 2 недели назад
бери n читaй матрицу проверяй соседние разностям если где-то два одинаковых то печатай no иначе да
Beau Naples Мастер (1207) 2 недели назад
бери первый элемент как старт потом проверяй по очереди соседей чтоб отличались и если где то не так сразу no иначе yes
Антон Пупкин Мастер (1747) 2 недели назад
бери два вложенных for сравнивай текущую клетку с соседями по горизонтали и вертикали если одинаковые выводи no иначе yes
Виктория Иванова Мастер (1384) 2 недели назад
пиши вот так на c++ короче пробеги по клеткам если соседи одинаковые сразу печатай no если нет то yes
vol9 Мастер (1420) 2 недели назад
берешь два for проверяешь если соседние клетки одинаковые или диагональ совпала то пишешь no иначе yes
ancuke Ученик (126) 1 неделю назад
данный код работает за 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;

}
Похожие вопросы