Cod sursa(job #280461)

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

void lettershell(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;
               }
         }
      }
   }
}

void wordshell(void)
	{
   inj=n;
   while (inj>1)
   	{
      inj/=2;
      sw=0;
      while (!sw)
      	{
         sw=1;
         for (i=1;i<=n-inj;i++)
         	if (strcmp(v[i], v[i+inj])>0)
            	{
               strcpy(auxw, v[i]);
               strcpy(v[i], v[i+inj]);
               strcpy(v[i+inj], auxw);
               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], 18, f);
   if (v[i][strlen(v[i])-1]=='\n')
		v[i][strlen(v[i])-1]='\0';
   }
lettershell();
wordshell();
for (i=1;i<=n;i++)
	if (!(!strcmp(v[i], v[i+1])||!strcmp(v[i], v[i-1])))
   	k++;
fprintf(g, "%d", k);
fcloseall();
return 0;
}