Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // B. Two grams https://codeforces.com/contest/977/problem/B
- #include <iostream>
- #include <string>
- using namespace std;
- int lengthOfString = 4;
- string inputString = "ZZZAA";
- string stringArray[10] = {};
- int stringArrayIndex = 0;
- int stringArrayIndexCounter[10] = {};
- string tempString ="";
- int stringArrayIndexCounterMaxNumber = 0;
- int maxIndex = 0;
- int twoGramsAvailAbility = 0;
- int checkTwoGramsAvailAbility()
- {
- twoGramsAvailAbility=0;
- for(int i =0; i<stringArrayIndex; i++)
- {
- if(stringArray[i]==tempString)
- {
- // cout << "ima duplicate";
- // cout <<" String array i temp string: " << stringArray[i] << " " << tempString<< endl;
- twoGramsAvailAbility=1;
- stringArrayIndexCounter[i]+=1;;
- break;
- }
- }
- return twoGramsAvailAbility;
- }
- void maxContainedValue()
- {
- for(int i =0; i<sizeof(stringArrayIndexCounter)/sizeof(stringArrayIndexCounter[0]);i++)
- {
- if(stringArrayIndexCounterMaxNumber < stringArrayIndexCounter[i])
- {
- stringArrayIndexCounterMaxNumber = stringArrayIndexCounter[i];
- maxIndex = i;
- }
- }
- // cout <<"The max index number is: " << stringArrayIndexCounterMaxNumber << endl;
- /*
- cout << "start" << endl;
- for(int i =0; i<sizeof(stringArrayIndexCounter)/sizeof(stringArrayIndexCounter[0]);i++)
- {
- cout << stringArrayIndexCounter[i] << endl;
- }
- */
- }
- int main()
- {
- lengthOfString = inputString.length();
- //cout << "L: "<< lengthOfString << endl;
- int number;
- cin >> number;
- cin >> inputString;
- for(int i =0; i<(lengthOfString-1); i++)
- {
- // cout << "I:" << i << endl;
- int I = i;
- if(I>=(lengthOfString-1))
- {
- I = (lengthOfString-1);
- }
- int currentChar = int(inputString.at(I));
- int nextChar = int(inputString.at(++I));
- // cout <<"Current char: " << currentChar << " next char: " << nextChar << " i" <<i << endl;
- if((currentChar==nextChar) || (currentChar==(nextChar+1)) || ((1+currentChar)==nextChar))
- {
- // cout << "tuka smE" << endl;
- tempString += inputString.at(i);
- tempString += inputString.at(i+1);
- //cout << "TEMPSTRING: " << tempString << endl;
- int temp = checkTwoGramsAvailAbility();
- // Ako temp = 1 se povtarqt
- if(!temp) // Ako temp = 0 se pravi nov string
- {
- // cout << "tuka sme22" << endl;
- stringArray[stringArrayIndex] = tempString;
- stringArrayIndex++;
- stringArrayIndexCounter[i]+=1;;
- }
- }
- tempString ="";
- }
- maxContainedValue();
- //cout << stringArray[stringArrayIndexCounterMaxNumber] << endl;
- for(int i =0; i<sizeof(stringArrayIndexCounter)/sizeof(stringArrayIndexCounter[0]);i++)
- {
- // cout << stringArrayIndexCounter[i] << endl;
- }
- cout << stringArray[maxIndex] << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment