egogoboy

Тормозной механизм

Sep 16th, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<string>
  4. #include<algorithm>
  5. #define all(container) container.begin(), container.end()
  6. #define fors(counter, start, finish) for (int counter = start; counter < finish; ++counter)
  7. #define forb(counter, start, finish) for (int counter = start; counter >= finish; --counter)
  8. #define vec(type) std::vector<type>
  9. #define dvec(type) std::vector<std::vector<type>>
  10.  
  11. int main() {
  12.  
  13.     std::ifstream fin("input.txt");
  14.  
  15.     std::string s, s2;
  16.     fin >> s >> s2;
  17.     if (s.size() < s2.size()) {
  18.         swap(s, s2);
  19.     }
  20.     std::string s1 = "";
  21.     fors(i, 0, s2.size())
  22.         s1.push_back('0');
  23.     fors(i, 0, s.size())
  24.         s1.push_back(s[i]);
  25.     fors(i, 0, s2.size())
  26.         s1.push_back('0');
  27.  
  28.     int ans = 1000000;
  29.     fors(i, 0, s1.size() - s2.size() + 1) {
  30.         int j = i;
  31.         while (s1[j] - '0' + s2[j - i] - '0' <= 3 && j - i < s2.size())
  32.             ++j;
  33.         if (j - i == s2.size()) {
  34.             if (i < s2.size()) {
  35.                 ans = ans < s.size() + s2.size() - i ? ans : s.size() + s2.size() - i;
  36.             }
  37.             else if (i > s.size()) {
  38.                 ans = ans < i ? ans : i;
  39.             }
  40.             else {
  41.                 ans = ans < s.size() ? ans : s.size();
  42.             }
  43.         }
  44.     }
  45.  
  46.     std::cout << ans << std::endl;
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment