Cod sursa(job #2566526)

Utilizator alex_braslasuBraslasu Alexandru alex_braslasu Data 2 martie 2020 21:47:37
Problema Text Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>

using namespace std;
ifstream f("text.in");
ofstream g("text.out");

int n, i = 0, j = 0, v[20010], b[20010], before[20010], maxi, maxi1, poz, jj;
char a, s[20010][30];

void Afisare(int poz)
{
    if (before[poz - 1] != 0)
    {
        Afisare(before[poz - 1]);
        g << s[poz - 1] << '\n';
    }
    else
        g << s[poz - 1] << '\n';
}

int main()
{
    b[0] = 1;
    while (f.get(a))
    {
        if (isalpha(a))
            s[i][j++] = a;
        else
        {
            jj = j;
            if (j > 0)
                v[i] = j;
            if (i > 0)
            {
                j = i - 1;
                maxi = 0;
                while (j >= 0)
                {
                    if (s[i][0] == s[j][v[j] - 1])
                    {
                        if (b[j] > maxi)
                        {
                            maxi = b[j];
                            before[i] = j + 1;
                        }
                    }
                    --j;
                }
                b[i] = maxi + 1;
                if (b[i] > maxi1)
                {
                    maxi1 = b[i];
                    poz = i + 1;
                }
            }
            j = 0;
            if (jj > 0)
                ++i;
        }
    }
    n = i;
    g << n << '\n' << n - maxi1 << '\n';
    Afisare(poz);
    return 0;
}