Cod sursa(job #280391)

Utilizator shnakoVlad Schnakovszki shnako Data 13 martie 2009 12:50:01
Problema Restante Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <stdio.h>
#include <string.h>
FILE *f, *g;
int i, j, n, inj, sw, t, k;
char v[36005][17], aux;

void shell(void)
{
for (i=1;i<=n;i++)
	{
   t=strlen(v[i])-1;
   inj=t;
   while (inj>1)
   	{
      inj/=2;
      sw=0;
      while (!sw)
      	{
         sw=1;
         for (j=0;j<t-inj+1;j++)
         	if (v[i][j]>v[i][j+inj])
            	{
               aux=v[i][j];
               v[i][j]=v[i][j+inj];
               v[i][j+inj]=aux;
               sw=0;
               }
         }
      }
   }
}

int main(void)
{
f=fopen("restante.in", "r");
g=fopen("restante.out", "w");
fscanf(f, "%d", &n);
fscanf(f, "%c", &v[0][0]);
for (i=1;i<=n;i++)
	{
	fgets(v[i], 16, f);
   if (v[i][strlen(v[i])-1]=='\n')
		v[i][strlen(v[i])-1]='\0';
   }
shell();
for (i=1;i<=n;i++)
	{
   sw=0;
	for (j=1;j<=n;j++)
		if (!strcmp(v[i], v[j])&&i!=j)
      	{
         sw=1;
         break;
         }
   if (!sw)
   	k++;
   }
fprintf(g, "%d", k);
fcloseall();
return 0;
}