Cod sursa(job #2553453)

Utilizator mihhTURCU MIHNEA ALEXANDRU mihh Data 21 februarie 2020 23:14:37
Problema ADN Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin ("adn.in");
ofstream fout("adn.out");

const int NMAX=20;
const int MMAX=30006;

string T[NMAX];
int N;
int Dp[NMAX][NMAX];
vector <int> I[NMAX];

void read(){
    fin>>N;
    for(int i=1; i<=N; ++i)
        fin>>T[i];
}


bool KMP(string &S, string &P, vector<int>& I){// overkill

    int lps[MMAX];

    for(int i=1;i<P.size();++i){
        int i2=i;
        for(;i<P.size() and P[i]==P[i-i2];++i)
            lps[i]=i-i2+1;
        if(i2!=i) --i;
    }
    ///
    int q=0;
    for(int i=0;i<S.size();++i){

        while(q>0 and S[i]!=P[q])
            q=lps[q-1];
        if(q==P.size())
            return 1; //ineficienta la max
        if(p[q]==S[i]) ++q;
    }
    return 0;
}

void solve(){

    sort(T,T+N, [](string &s1, string &s2){
        return s1.size()<s2.size();
    });

    for(int i=1;i<=N;++i){

        for(int j=i+1; j<=N; ++j)
            KMP(T[j],T[i], I[j]);

    }

    for(int i=1;i<=N;++i){

        for(int j=1;j<=N;++j)
            ;

    }

}

int main(){
    read();
    solve();
}