Top.Mail.Ru
Ответы

Помогите с задачей можно либо на 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

По дате
По Рейтингу
Аватар пользователя
Новичок
1мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  #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; 
} 
 
 

 
 

Если работает не так как нужно код, сразу пиши что именно не так

Аватар пользователя
Ученик
1мес

данный код работает за n^2 / 2

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
 #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;  
 		
}  
Аватар пользователя
Мастер
1мес

берешь два for проверяешь если соседние клетки одинаковые или диагональ совпала то пишешь no иначе yes

Аватар пользователя
Мастер
1мес

пиши вот так на c++ короче пробеги по клеткам если соседи одинаковые сразу печатай no если нет то yes

Аватар пользователя
Мастер
1мес

бери два вложенных for сравнивай текущую клетку с соседями по горизонтали и вертикали если одинаковые выводи no иначе yes