Pagini recente » Borderou de evaluare (job #2263721) | Borderou de evaluare (job #1721176) | Borderou de evaluare (job #2730354) | Borderou de evaluare (job #1307568) | Cod sursa (job #2412139)
#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;
}