Cod sursa(job #640445)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 25 noiembrie 2011 19:23:44
Problema PalM Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <iostream>
#include <cstdio>
#include <stack>
using namespace std;

stack <char> stiva;
char x[505];
int contor,maxim;

int main()
{
	freopen("palm.in","r", stdin);
	freopen("palm.out","w", stdout);
	scanf("%s",x);
	int n=strlen(x);
	//cout<<x<<endl<<n;
	
	for(int i=1;i<n;i++)
	{
		contor=0;
		while(i<n && stiva.size()>0 && stiva.top()<=x[i])
		{
			stiva.push(x[i]);
			i++;			
		}
		if(stiva.size()>0 && stiva.top()>x[i])
		{
			char top=stiva.top();
			while(stiva.size()>0 && stiva.top()==top)
			{
				//cout<<top;
				contor++;
				stiva.pop();					
			}
		//	cout<<endl;
			while(stiva.size()>0 && stiva.top()==x[i])
			{
				contor+=2;
				//cout<<x[i];
				stiva.pop();
				i++;				
			}
			
		}
		if(contor>maxim)maxim=contor;
		while(stiva.size())stiva.pop();
		stiva.push(x[i]);
		
	}
	cout<<maxim;

	return 0;
}