Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <bits/stl_algo.h>
  5.  
  6. using namespace std;
  7.  
  8. void changeside(char &c) {
  9.     if (c == 'L')
  10.         c = 'R';
  11.     else
  12.         c = 'L';
  13. }
  14.  
  15. int howmuchsameletters(char c, vector<char> v) {
  16.     int i = 0;
  17.     for (int j = (int) (v.size() - 1); j >= 0; j--) {
  18.         if (c == v[j]) {
  19.             i++;
  20.         } else break;
  21.     }
  22.     return i;
  23. }
  24.  
  25. int go(char c, vector<char> &v) {
  26.     while (v.back() != c) {
  27.         v.pop_back();
  28.     }
  29. }
  30.  
  31. int main() {
  32.     char currentState = 'L';
  33.     vector<char> v;
  34.     ifstream io("input.txt");
  35.     int res = 0;
  36.     for (char c; io >> c;) {
  37.         //cout << c;
  38.         if (c == 'B') {
  39.             res++;
  40.             continue;
  41.         }
  42.         v.push_back(c);
  43.     }
  44.     std::reverse(v.begin(), v.end());
  45.     while (v.size() > 0) {
  46.         go(currentState, v);
  47.         if (v.size() > 0) {
  48.             int sletters = howmuchsameletters(currentState, v);
  49.             if (sletters >= 2) {
  50.                 for (int i = 0; i < sletters; ++i) {
  51.                     v.pop_back();
  52.                 }
  53.                 changeside(currentState);
  54.             } else
  55.                 v.pop_back();
  56.             res++;
  57.         }
  58.     }
  59.  
  60.  
  61.     ofstream o;
  62.     o.open("output.txt");
  63.     o << res;
  64.     o.close();
  65.     //cout << endl << res;
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement