Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ID: bradyawn
- PROG: beads
- LANG: C++11
- */
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- using namespace std;
- int mod(int x, int y)
- {
- while (x < 0)
- {
- x += y;
- }
- return (x % y);
- }
- int findLen(string &neck, int index, int N) //BOTHWARDS!!!111!!!
- {
- int forNum;
- int backNum;
- char color = 'w';
- int i = index;
- //Count Forwards
- for (forNum = 0; forNum < N; forNum++ )
- {
- i = mod(index+forNum, N);
- if (color == 'w' && neck[i] != 'w')
- color = neck[i];
- if((color != 'w')&&(color != neck[i])&&(neck[i] != 'w'))
- break;
- }
- //Backwards
- color = 'w';
- i = mod(index-1, N);
- for (backNum = 0; backNum < N; backNum++)
- {
- i = mod(index-1-backNum, N);
- if (color == 'w' && neck[i] != 'w')
- color = neck[i];
- if((color != 'w')&&(color != neck[i])&&(neck[i] != 'w'))
- break;
- }
- int numBeads = forNum + backNum;
- if (numBeads > N) numBeads = N;
- return numBeads;
- }
- int main ()
- {
- ifstream inf("beads.in");
- ofstream outf("beads.out");
- // Solution
- //Gathering Input
- int N; //amount of beads
- string neck; //necklace sequence
- int max = 2;
- inf >> N;
- inf >> neck;
- for (int i = 0; i < N; i++) //brute force
- {
- int cur = findLen(neck, i, N);
- if (cur > max) max = cur;
- }
- outf << max << endl;
- // End of Solution
- inf.close();
- outf.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement