Cod sursa(job #636433)

Utilizator dicu_dariaDaria Dicu dicu_daria Data 19 noiembrie 2011 20:06:15
Problema PalM Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.79 kb
#include <fstream>
#include <cstring>
#define max(a,b) ((a<b)?b:a)
using namespace std;
int a[502][502],i,j,n;
char el[502][502];
string s;
int main()
{
   ifstream fi("palm.in");
   ofstream fo("palm.out");
   fi>>s;
   n=s.length();
   for(i=n;i>0;i--)
   for(a[i][i]=1,el[i][i]=s[i-1],j=i+1;j<=n;j++)
   {
      if(s[i-1]==s[j-1] and s[i-1]<=el[i+1][j-1]) {
                                             a[i][j]=a[i+1][j-1]+2;
                                             el[i][j]=s[i-1];
                                             } else
      if(s[i-1]!=s[j-1]) {
                           el[i][j]=((a[i+1][j]>a[i][j-1])?el[i+1][j]:el[i][j-1]);
                           a[i][j]=max(a[i+1][j],a[i][j-1]);
                         }
                        
   }
   fo<<a[1][n]<<"\n";
   return 0;
}