Cod sursa(job #2412139)

Utilizator VladTZYVlad Tiganila VladTZY Data 21 aprilie 2019 18:12:25
Problema Restante Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <cstring>

#define NMAX 36005

using namespace std;

ifstream f("restante.in");
ofstream g("restante.out");

int n,i,m,k,okF;
int v[NMAX];
char x[25];
int a[NMAX][35];

void add(char x[],int n)
{
    a[k][30]=n;
    for(int i=0;i<n;i++)
        a[k][x[i]-'a']=1;
}

int check(char x[],int n,int &okF)
{
    int ok;
    for(int i=1;i<=k;i++)
    {
        if(a[i][30]==n)
        {
            ok=0;
            for(int j=0;j<n;j++)
            {
                if(a[i][x[j]-'a']==0)
                {
                    ok=1;
                    break;
                }
            }
            if(ok==0)
            {
                okF=v[i];
                v[i]=1;
                return true;
            }
        }
    }
    return false;
}

int main()
{
    f>>n;f.get();
    for(i=1;i<=n;i++)
    {
        f.getline(x,20);
        m=strlen(x);
        okF=0;
        if(check(x,m,okF))
        {
            if(okF==0)
                k--;
        }
        else
        {
            k++;
            add(x,m);
        }
    }
    g<<k;
}