Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #pragma comment(linker, "/STACK:167772160000")
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #include <stdio.h>
- #include <cstdio>
- #include <stdlib.h>
- #include <cstdlib>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #include <vector>
- #include <list>
- #include <stack>
- #include <climits>
- #include <set>
- #include <bitset>
- #include <math.h>
- #include <queue>
- #include <map>
- #include <sstream>
- #include <functional>
- #include <assert.h>
- #include <unordered_map>
- #include <unordered_set>
- #include <complex>
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- typedef std::pair<int, int> pii;
- typedef std::pair<double, double> pdd;
- template <typename T> using min_heap = std::priority_queue<T, std::vector<T>, std::greater<T>>;
- template <typename T> using max_heap = std::priority_queue<T, std::vector<T>, std::less<T>>;
- #define FAST_IO ios_base::sync_with_stdio(false); cin.tie(NULL);
- #define TESTS(t) int NUMBER_OF_TESTS; cin >> NUMBER_OF_TESTS; for(int t = 1; t <= NUMBER_OF_TESTS; t++)
- #define FOR(i, start, end) for(int i = (start); i < (end); i++)
- #define ROF(i, start, end) for(int i = (start); i >= (end); i--)
- #define all(x) (x).begin(), (x).end()
- //#define endl "\n"
- #define PI (asin(1)*2)
- #define oo ((1LL<<31)-1)
- #define OO ((1LL<<63)-1)
- #define eps 1e-12
- #define in(a, b) ((b).find(a) != (b).end())
- #define mp(a, b) make_pair((a), (b))
- #define sgn(a) ((a) > eps ? 1 : ((a) < -eps ? -1 : 0))
- #define cl1(x) ((x)&((x)-1)) // clear lowest 1 bit
- #define cl0(x) ((x)|((x)+1)) // clear lowest 0 bit
- #define ct1(x) ((x)&((x)+1)) // clear all trailing 1 bits
- #define pb push_back
- #define MOD 1000000007
- #define MAX_N 100000
- using namespace std;
- string s;
- bool check3(int i, int j, int k) {
- return (s[i] == 'R' && s[j] == 'G' && s[k] == 'B')
- || (s[i] == 'R' && s[j] == 'B' && s[k] == 'G')
- || (s[i] == 'G' && s[j] == 'B' && s[k] == 'R')
- || (s[i] == 'G' && s[j] == 'R' && s[k] == 'B')
- || (s[i] == 'B' && s[j] == 'G' && s[k] == 'R')
- || (s[i] == 'B' && s[j] == 'R' && s[k] == 'G');
- }
- int main()
- {
- FAST_IO
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- cin >> s;
- int cnt = 0;
- if (s.length() == 3) {
- cout << cnt << endl; // 0
- exit(0);
- }
- if (check3(0, 1, 2) || check3(s.length() - 1, s.length() - 2, s.length() - 3)) {
- cnt++;
- cout << cnt << endl;
- exit(0);
- }
- for (int i = 2; i < s.length() - 1; i++) {
- if (check3(i, i - 1, i - 2)) {
- cnt += 2;
- cout << cnt << endl; // if RGB is somewhere, then 2
- exit(0);
- }
- }
- if (check3(0, 1, s.length() - 1)) {
- cnt += 2;
- cout << cnt << endl; // if RG....B then 2
- exit(0);
- }
- if (check3(s.length() - 2, s.length() - 1, 0)) {
- cnt += 2;
- cout << cnt << endl; // if R...GB then 2
- exit(0);
- }
- for (int i = 1; i < s.length(); i++) {
- if (check3(i, i - 1, 0) || check3(i, i - 1, s.length() - 1)) {
- cnt += 3;
- cout << cnt << endl; //
- exit(0);
- }
- }
- cnt += 4;
- cout << cnt << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement