Решение задачи IQ-тест с Codeforces

Без пояснения   Просмотров: 24


В городе Крайняя Туле при приеме на работу часто требуют пройти IQ-тест.

Тест заключается в следующем: испытуемому выдают листок бумаги, на котором нарисован клетчатый квадрат 4 × 4, часть клеток которого окрашено в черный цвет, а часть — в белый. Нужно перекрасить не более одной клетки в другой цвет так, чтобы на рисунке появился квадрат 2 × 2, полностью состоящий из клеток одного цвета. Если такой квадрат уже есть, испытуемый должен просто сказать об этом и тест будет пройден.

Вам требуется написать программу, которая определяет, можно ли пройти тест. Тест пройти нельзя, если при перекрашивании любой клетки или при бездействии не найдется квадратов 2 × 2, состоящих из клеток одного цвета.

Код

#include <bits/stdc++.h>
using namespace std;
main () {
	int n=4;
	char c[5][5];
	for (int i=1; i<=n; i++)
		for (int j=1; j<=n; j++) 
			cin>>c[i][j];
			
	for (int i=1; i+1<=n; i++)
		for (int j=1; j+1<=n; j++) {
			int w=0,b=0;
			if (c[i][j]=='.') w++;
				else b++;
			if (c[i+1][j]=='.') w++;
				else b++;
			if (c[i][j+1]=='.') w++;
				else b++;
			if (c[i+1][j+1]=='.') w++;
				else b++;
				
			if (b!=2 || w!=2) {
				cout<<"YES\n";
				return 0;
			}
		}
		
	cout<<"NO\n";
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться