Cod sursa(job #636115)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 19 noiembrie 2011 17:09:51
Problema PalM Scor 40
Compilator cpp Status done
Runda .com 2011 Marime 1.01 kb
# include <fstream>
# include <cstring>
using namespace std;
ifstream f ("palm.in");
ofstream g ("palm.out");
using namespace std;
int lmax[300],poz[300],maxim,maxp,p,i,k,n,fr[300],poz2[300];
char a[1000];
int main ()
{
	for (i='a';i<='z';i++)
		poz2[i]=-1;
	
	f.getline (a,1000);
	n=strlen (a);
	
	for (i=0;i<n;i++)
	{
		fr[a[i]]++;
		if (poz2[a[i]]==-1)
		{
			poz2[a[i]]=i;
			poz[a[i]]=i;
		}
		maxim=0;
		maxp=0;
		for (k=a[i];k<='z';k++)
			if (lmax[k]!=0)
			{
				p=poz[k]-1;
				while (p>=0)
				{
					if (a[p]==a[i])
						if (maxim<lmax[k]+2)
						{
							maxim=lmax[k]+2;
							maxp=p;
							break;
						}
						else
							if (maxim==lmax[k]+2)
								if (maxp<p)
								{
									maxp=p;
									break;
								}
				p--;
				}
			}
	if (maxim<fr[a[i]])
	{
		maxim=fr[a[i]];
		maxp=poz2[a[i]];
	}
	

		lmax[a[i]]=maxim;
		poz[a[i]]=maxp;
	
		
	}
	maxim=0;
	for (i='a';i<='z';i++)
		if (maxim<lmax[i])
			maxim=lmax[i];
		
	g<<maxim;
	return 0;
}