Решение задачи "Каникулы" с Codeforces

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


Каникулы Васи будут длиться n дней! И Вася решил за это время улучшить свои навыки программирования, а также позаниматься спортом. Про каждый из n дней каникул Вася знает, будет ли открыт в этот день спортзал, а также будет ли в интернете в этот день проводиться контест. Для i-го дня возможны четыре варианта:

в этот день закрыт спортзал и не проводится контест;
в этот день закрыт спортзал и проводится контест;
в этот день открыт спортзал и не проводится контест;
в этот день открыт спортзал и проводится контест.
В каждый из дней Вася может либо отдыхать, либо писать контест (если он проводится в этот день), либо заниматься спортом (если открыт спортзал).

Перед вами стоит задача найти минимальное количество дней, в которые Вася будет отдыхать (то есть не будет заниматься спортом и не будет писать контест одновременно). Единственное ограничение от Васи — он не хочет два дня подряд заниматься одним и тем же видом активности, то есть он не будет заниматься спортом два дня подряд и он не будет писать контесты два дня подряд.

Код

#include<bits/stdc++.h>
using namespace std;

int main(){
    int x = 0,y = 0,n,ans = 0;
    cin >> n;
    for(int i = 0 ; i < n ; i += 1){
        x = y;
        cin >> y;
        if(y == x && y != 3){
            y = 0;
        }
        if(y != x && y == 3){
            y -= x;
        }
        if(y == 0){
            ans += 1;
        }
    }
    cout << ans;
}

         

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


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

Комментарии

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