Cod sursa(job #635672)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 19 noiembrie 2011 14:03:38
Problema PalM Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 1.31 kb
#include <cstdio>
#include <iostream>
#include <string>
#include <deque>
using namespace std;

char x[505];
deque <char> d;

int main()
{
	int contor=0,max=0;;
	freopen("palm.in","r", stdin);
	freopen("palm.out","w", stdout);
	fgets(x,505,stdin);
	int n=strlen(x);
	for(int i=0;i<n;i++)
	{
		contor=0;
		if(d.size()==0) d.push_back(x[i]);
		else
		{
			//while(d.size()>0 && d.back()>x[i]) d.pop_back();
			if(d.size()>0 && d.back()>x[i])
			{ 
				
				//cout<<" Pozitia : "<<i<<" si x : "<<x[i]<<endl;
				
				/*while(d.size())
				{	
					contor++;
					d.pop_back();
					cout<<contor<<endl;
				}*/
				d.pop_back();
				contor++;
				while(d.size()>0 && i+1<=n && x[i]==d.back()) //&& x[i]>x[i+1] 
				{		
					
					//cout<<" d spate : "<<d.back()<<" si "<<x[i]<<" i="<<i<<" contor de aici: " <<contor<<endl;
					d.pop_back();
					//d.push_back(x[i]);
					contor+=2;
					i++;
					
				}
				if(d.size())cout<<endl<<" d.spate 2 " <<d.back()<<" si x "<<x[i]<<endl;
				d.clear();
				//cout<<" contor : " <<contor<<endl;
			}
		
			if(contor>max) max=contor;
			//cout<<i<<" "<<x[i]<<endl;
			//	contor=0;
			
			d.push_back(x[i]);
			contor=0;
			
			
			
		}
		
	}
	//cout<<d.size();
	
	//for(int i=0;i<d.size();i++) cout<<d[i]<<" ";
	cout<<max;
	return 0;
}