Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #pragma comment(linker, "/STACK:167772160000")
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <fstream>
  6. #include <stdio.h>
  7. #include <cstdio>
  8. #include <stdlib.h>
  9. #include <cstdlib>
  10. #include <algorithm>
  11. #include <cstring>
  12. #include <string>
  13. #include <vector>
  14. #include <list>
  15. #include <stack>
  16. #include <climits>
  17. #include <set>
  18. #include <bitset>
  19. #include <math.h>
  20. #include <queue>
  21. #include <map>
  22. #include <sstream>
  23. #include <functional>
  24. #include <assert.h>
  25. #include <unordered_map>
  26. #include <unordered_set>
  27. #include <complex>
  28.  
  29. typedef long long ll;
  30. typedef unsigned long long ull;
  31. typedef long double ld;
  32. typedef std::pair<int, int> pii;
  33. typedef std::pair<double, double> pdd;
  34. template <typename T> using min_heap = std::priority_queue<T, std::vector<T>, std::greater<T>>;
  35. template <typename T> using max_heap = std::priority_queue<T, std::vector<T>, std::less<T>>;
  36.  
  37. #define FAST_IO ios_base::sync_with_stdio(false); cin.tie(NULL);
  38. #define TESTS(t) int NUMBER_OF_TESTS; cin >> NUMBER_OF_TESTS; for(int t = 1; t <= NUMBER_OF_TESTS; t++)
  39. #define FOR(i, start, end) for(int i = (start); i < (end); i++)
  40. #define ROF(i, start, end) for(int i = (start); i >= (end); i--)
  41. #define all(x) (x).begin(), (x).end()
  42. //#define endl "\n"
  43. #define PI (asin(1)*2)
  44. #define oo ((1LL<<31)-1)
  45. #define OO ((1LL<<63)-1)
  46. #define eps 1e-12
  47. #define in(a, b) ((b).find(a) != (b).end())
  48. #define mp(a, b) make_pair((a), (b))
  49. #define sgn(a) ((a) > eps ? 1 : ((a) < -eps ? -1 : 0))
  50. #define cl1(x) ((x)&((x)-1)) // clear lowest 1 bit
  51. #define cl0(x) ((x)|((x)+1)) // clear lowest 0 bit
  52. #define ct1(x) ((x)&((x)+1)) // clear all trailing 1 bits
  53. #define pb push_back
  54. #define MOD 1000000007
  55. #define MAX_N 100000
  56. using namespace std;
  57.  
  58. string s;
  59.  
  60. bool check3(int i, int j, int k) {
  61. return (s[i] == 'R' && s[j] == 'G' && s[k] == 'B')
  62. || (s[i] == 'R' && s[j] == 'B' && s[k] == 'G')
  63. || (s[i] == 'G' && s[j] == 'B' && s[k] == 'R')
  64. || (s[i] == 'G' && s[j] == 'R' && s[k] == 'B')
  65. || (s[i] == 'B' && s[j] == 'G' && s[k] == 'R')
  66. || (s[i] == 'B' && s[j] == 'R' && s[k] == 'G');
  67. }
  68.  
  69. int main()
  70. {
  71. FAST_IO
  72. #ifdef _DEBUG
  73. freopen("input.txt", "r", stdin);
  74. freopen("output.txt", "w", stdout);
  75. #endif
  76. cin >> s;
  77. int cnt = 0;
  78. if (s.length() == 3) {
  79. cout << cnt << endl; // 0
  80. exit(0);
  81. }
  82.  
  83. if (check3(0, 1, 2) || check3(s.length() - 1, s.length() - 2, s.length() - 3)) {
  84. cnt++;
  85. cout << cnt << endl;
  86. exit(0);
  87. }
  88.  
  89. for (int i = 2; i < s.length() - 1; i++) {
  90. if (check3(i, i - 1, i - 2)) {
  91. cnt += 2;
  92. cout << cnt << endl; // if RGB is somewhere, then 2
  93. exit(0);
  94. }
  95. }
  96.  
  97.  
  98. if (check3(0, 1, s.length() - 1)) {
  99. cnt += 2;
  100. cout << cnt << endl; // if RG....B then 2
  101. exit(0);
  102. }
  103.  
  104. if (check3(s.length() - 2, s.length() - 1, 0)) {
  105. cnt += 2;
  106. cout << cnt << endl; // if R...GB then 2
  107. exit(0);
  108. }
  109.  
  110. for (int i = 1; i < s.length(); i++) {
  111. if (check3(i, i - 1, 0) || check3(i, i - 1, s.length() - 1)) {
  112. cnt += 3;
  113. cout << cnt << endl; //
  114. exit(0);
  115. }
  116. }
  117.  
  118. cnt += 4;
  119. cout << cnt << endl;
  120.  
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement