Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <bits/stl_algo.h>
- using namespace std;
- void changeside(char &c) {
- if (c == 'L')
- c = 'R';
- else
- c = 'L';
- }
- int howmuchsameletters(char c, vector<char> v) {
- int i = 0;
- for (int j = (int) (v.size() - 1); j >= 0; j--) {
- if (c == v[j]) {
- i++;
- } else break;
- }
- return i;
- }
- int go(char c, vector<char> &v) {
- while (v.back() != c) {
- v.pop_back();
- }
- }
- int main() {
- char currentState = 'L';
- vector<char> v;
- ifstream io("input.txt");
- int res = 0;
- for (char c; io >> c;) {
- //cout << c;
- if (c == 'B') {
- res++;
- continue;
- }
- v.push_back(c);
- }
- std::reverse(v.begin(), v.end());
- while (v.size() > 0) {
- go(currentState, v);
- if (v.size() > 0) {
- int sletters = howmuchsameletters(currentState, v);
- if (sletters >= 2) {
- for (int i = 0; i < sletters; ++i) {
- v.pop_back();
- }
- changeside(currentState);
- } else
- v.pop_back();
- res++;
- }
- }
- ofstream o;
- o.open("output.txt");
- o << res;
- o.close();
- //cout << endl << res;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement