Решение задачи Магниты с Codeforces

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


Безумный ученый Майк развлекается, составляя ряды домино. В качестве домино Майк использует прямоугольные магниты с полюсами «плюс» и «минус». Если друг к другу приблизить два магнита, то одноименные полюса отталкиваются, а разноименные полюса притягиваются.

Майк начинает с того, что горизонтально кладет на стол один магнит. На каждом следующем шаге Майк продолжает ряд справа, приставляя еще один магнит горизонтально. В зависимости от того, как Майк положил магнит на стол, тот либо притягивается к предыдущему (тогда образуется «островок» из нескольких магнитов вместе), либо отталкивается от предыдущего (тогда Майк кладет новый магнит на некотором расстоянии справа от предыдущего). Считается, что магнит, лежащий отдельно от других, тоже образует свой «островок».

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s, temp;
    int n, k = 0;
    cin >> n;
    for(int i = 0; i < n; ++i){
        cin >> temp;
        s+=temp;
    }
    int pos = s.find("11");
    while(pos + 1){
        ++k;
        pos = s.find("11", pos + 1);
    }
    pos = s.find("00");
    while(pos + 1){
        ++k;
        pos = s.find("00", pos + 1);
    }
    cout << k + 1;
    return 0;
}

         

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



Комментарии

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