Pagini recente » Cod sursa (job #215707) | Cod sursa (job #862070) | Cod sursa (job #240254) | Cod sursa (job #2120530) | Cod sursa (job #396015)
Cod sursa(job #396015)
#include <stdio.h>
#include <string.h>
FILE *f=fopen ("restante.in", "r");
FILE *g=fopen ("restante.out", "w");
int i,j,n,sw,k,n2;
char v[36001][20];
void shell(int k, int n, int tipsort) {
int inj=n,i,sw;
char aux[16];
if (tipsort==1)
while (inj>1)
{
inj/=2;
do
{
sw=0;
for (i=0;i<=n-inj;i++)
if ( strcmp (v[i], v[i+inj])>0 )
{
strcpy (aux, v[i]);
strcpy (v[i], v[i+inj]);
strcpy (v[i+inj], aux);
sw=1;
}
}
while (sw);
}
else
while (inj>1)
{
inj/=2;
do
{
sw=0;
for (i=0;i<=n-inj;i++)
if (v[k][i]>v[k][i+inj])
{
v[k][i]=v[k][i]^v[k][i+inj];
v[k][i+inj]=v[k][i]^v[k][i+inj];
v[k][i]=v[k][i]^v[k][i+inj];
sw=1;
}
}
while (sw);
}
}
int main() {
fscanf (f, "%d", &n);
for (i=0;i<=n-1;i++)
{
fscanf (f, "%s", &v[i]);
n2=strlen(v[i])-1;
shell (i, n2, 0);
}
shell (i, n-1, 1);
for (i=0;i<=n-1;i++)
{
sw=0; j=i+1;
while ( strcmp (v[i], v[j])==0 )
{ j++; sw=1; }
if (sw)
i=j-1;
else
k++;
}
fprintf (g, "%d", k);
return 0;
}