Решение задачи Очередная задача про тетрис с Codeforces

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


Вам задано поле Тетриса, состоящее из n столбцов. Начальная высота i-го столбца поля равна ai блоков. Сверху на столбцы вы можете ставить только фигуры размера 2×1 (то есть высоты 2 блока и ширины 1 блок). Заметьте, что вы не можете поворачивать эти фигуры.

Ваша задача — определить, возможно ли очистить заданное поле, используя только описанные фигуры.

Более формально, задачу можно описать следующим образом:

Пока хотя бы одно из ai больше 0, происходит следующий процесс:

Вы ставите одну фигуру 2×1 (выбираете какое-то i от 1 до n и заменяете ai на ai+2);
затем, пока все ai больше нуля, каждое ai заменяется на ai−1.
Ваша задача — определить, возможно ли очистить заданное поле (т.е. завершить описанный процесс), выбирая места для новых фигур правильным образом.

Вам необходимо ответить на t независимых наборов тестовых данных.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int t, n;
    cin >> t;
    for(int i = 0; i < t; ++i){
        cin >> n;
        vector<int> a(n);
        cin >> a[0];
        bool b = true;
        for(int j = 1; j < n; ++j){
            cin >> a[j];
            if(a[j] - a[j - 1] != 0 && (a[j] - a[j - 1]) % 2 != 0)
                b = false;
        }
        if(b)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;

    }
    return 0;
}

         

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



Комментарии

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