Informatika gyűjtemény

Egy szinttel feljebb tb_tukor.cs

2004050607080910

NézetNyomtat

tb_tukor.cs (Vissza)
Az alábbi letöltési lehetőségek közül választhatsz: (segítség)
Karakterkódolás:
Sortörés:
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
using System;

namespace Tukor
{
    class Program
    {
        const string InputFile  = "Tukor.beA",
                     OutputFile = "Tukor.ki";
        string szo;
        int[,] cache;

        private void Init()
        {
            cache = new int[szo.Length, szo.Length];

            for (int i = 0; i < szo.Length; i++)
                for (int j = 0; j < szo.Length; j++)
                    cache[i, j] = -1;
        }

        private int Szamol(int eleje, int vege)
        {
            if (eleje > vege)
                return 0;
            else if (eleje == vege)
                return 1;
            else if (cache[eleje, vege] >= 0)
                return cache[eleje, vege];
            else {
                if (szo[eleje] == szo[vege])
                    cache[eleje, vege] = Szamol(eleje + 1, vege - 1) + 2;
                else
                    cache[eleje, vege] = Math.Max(Szamol(eleje, vege - 1), Szamol(eleje + 1, vege));

                return cache[eleje, vege];
            }
        }

        private void Indit()
        {
            System.IO.StreamReader sr = new System.IO.StreamReader(InputFile);
            System.IO.StreamWriter sw = new System.IO.StreamWriter(OutputFile);

            szo = sr.ReadLine();
            sr.Close();

            Init();

            sw.WriteLine(Szamol(0, szo.Length - 1));
            sw.Close();
        }

        public static void Main()
        {
            Program program = new Program();
            program.Indit();
        }
    }
}
(Vissza)