Pagini recente » Cod sursa (job #1746796) | Cod sursa (job #2743093) | Cod sursa (job #1090329) | Cod sursa (job #2351201) | Cod sursa (job #2540875)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int v[36005][30],v1[30];
int w[36005];
char vi[36005];
int main()
{
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
int n,i,j,nr,ult,k,con,nom;
scanf("%d",&n);
gets(vi);
for (i=1; i<=n; i++)
{
gets(vi);
nr=strlen(vi);
for (j=0; j<nr; j++)
v1[j]=vi[j]-'a'+1;
w[i]=nr;
sort (v1,v1+nr);
for (j=0; j<nr; j++)
v[i][j]=v1[j];
}
//sort (v+1,v+1+n);
/*for (i=1;i<=n;i++)
{
for (j=0;j<w[i];j++)
printf("%d ",v[i][j]);
printf("\n");
}*/
nr=0;
ult=n;
while (nr==0)
{
nr=1;
for (i=1; i<=n; i++)
{
for(j=i+1; j<=n; j++)
{
if (w[i]>w[j])
{
nr=w[i];
w[i]=w[j];
w[j]=nr;
//nr=v[i];
swap(v[i],v[j]);
nr=0;
}
if (w[i]==w[j])
{
/*printf("v[i]= ");
for (int k1=0;k1<w[i];k1++)
printf("%d ",v[i][k1]);
printf("\n");
printf("v[j]= ");
for (int k1=0;k1<w[j];k1++)
printf("%d ",v[j][k1]);
printf("\n");*/
for (k=0; k<w[i]; k++)
{
if (v[i][k]>v[j][k])
{
//printf("%d %d %d\n",v[i][k],v[j][k],k);
swap(v[i],v[j]);
k=w[i]+5;
//printf("%d %d\n",v[i][k],v[j][k]);
//j=n+5;
}
if (v[i][k]<v[j][k])
k=w[i]+5;
}
}
}
}
ult--;
}
/*for (i=1; i<=n; i++)
{
for (j=0; j<w[i]; j++)
printf("%d ",v[i][j]);
printf("\n");
}*/
con=0;
int ver=0;
for (k=1; k<n; k++)
{
//printf("%d %d %d\n",w[k],w[k+1],ver);
if (w[k]<w[k+1])
{
if (ver!=0||k==1)
{
con++;
//ver=1;
}
if (k==n-1)
con++;
ver=1;
}
else
{
nom=0;
for (i=0; i<w[k]; i++)
{
if (v[k][i]!=v[k+1][i])
{
//printf("%d %d\n",v[k][i],v[k][i+1]);
i=w[k]+5;
if (ver==1)
con++;
nom=1;
if (k==n-1)
con++;
}
}
if (nom==0)
ver=0;
else
ver=1;
//printf()
}
//printf("%d\n",con);
}
printf("%d",con);
return 0;
}