Cod sursa(job #637440)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 20 noiembrie 2011 14:28:51
Problema PalM Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.97 kb
# include <fstream>
# include <cstring>
using namespace std;
ifstream f ("palm.in");
ofstream g ("palm.out");
using namespace std;
int a[1005][300],i,j,k,q,maxim,n,d[1005][300],ok;
char s[1000];
int main ()
{
	f.getline (s,1000);
	n=strlen (s);
	
	for (i=0;i<n;i++)
	{
		for (j=0;j<i;j++)
		if (s[j-1]==s[j] && d[j-1][s[j]]==0)
		{
			a[j][s[j]]=a[j-1][s[j]]-1;
		}
		else
			if (s[j]==s[i])
			{
				ok=0;
				maxim=0;
				for (k=j+1;k<i;k++)
					for (q=s[i];q<='z';q++)
					{
						if (maxim<a[k][q])
						{
							maxim=a[k][q];
							if (q==s[i] && d[k][q]==0)
								ok=1;
							else
								ok=0;
						
						}
					
					}
				if (maxim==0)
					a[j][s[j]]=2;
				else
				{
					if (ok==0)
						d[j][s[j]]=1;
					a[j][s[j]]=maxim+2;
				}
			}
		
			
		if (a[i][s[j]]==0)
			a[i][s[j]]=1;
	}
	maxim=0;
	for (i=0;i<n;i++)
		for (j='a';j<='z';j++)
			if (maxim<a[i][j])
				maxim=a[i][j];
			
			g<<maxim;

	return 0;
}