Pagini recente » Cod sursa (job #698871) | Cod sursa (job #723670) | Cod sursa (job #2083320) | Cod sursa (job #341447) | Cod sursa (job #1817307)
#include <cstdio>
#include <algorithm>
#include <bitset>
using namespace std;
int a[36001][17];
int v[36001];
int ff[30];
int compar (int x,int y){
for (int i=0;i<=a[x][0];i++){
if (a[x][i]>a[y][i])
return 0;
else if (a[x][i]<a[y][i])
return 1;
}
return 2;
}
int main()
{
FILE *fin=fopen ("restante.in","r");
FILE *fout=fopen ("restante.out","w");
int n,i,uni,st,l;
char c;
fscanf (fin,"%d\n",&n);
for (i=1;i<=n;i++){
c=fgetc (fin);
while (c!='\n'){
l=c-'a'+1;
ff[l]++;
c=fgetc (fin);
}
for (int j=1;j<30;j++){
while (ff[j]){
a[i][++a[i][0]]=j;
ff[j]--;
}
}
}
for (i=1;i<=n;i++)
v[i]=i;
sort (v+1,v+n+1,compar);
uni=0;
st=0;
for (i=1;i<=n;i++){
if (compar(i,i-1)!=2){
uni++;
st=0;
}
else
if (st==0){
st=1;
uni--;
}
}
fprintf (fout,"%d",uni);
return 0;
}