Pagini recente » Cod sursa (job #1263985) | Cod sursa (job #2350439) | Cod sursa (job #1110895) | Cod sursa (job #734733) | Cod sursa (job #340178)
Cod sursa(job #340178)
Utilizator |
Zethpix Zethpix |
Data |
13 august 2009 15:30:28 |
Problema |
Restante |
Scor |
100 |
Compilator |
cpp |
Status |
done |
Runda |
w2 |
Marime |
1.36 kb |
#include <stdio.h>
#include <string.h>
char d[18];
char c[36002][18];
long n,i,t;
void inter(long x,long m,long y){
char a[18];
for(i=x;i<=y;i++) a[i]=d[i];
long i1=x;
long i2=m+1;
long k=x-1;
while(i1<=m&&i2<=y)
if(a[i1]<a[i2]) d[++k]=a[i1++];
else d[++k]=a[i2++];
for(i=i1;i<=m;i++) d[++k]=a[i];
for(i=i2;i<=y;i++) d[++k]=a[i];
}
void sort(long x,long y){
if(x!=y){
long m=(x+y)/2;
sort(x,m);
sort(m+1,y);
inter(x,m,y);
}
}
void minter(long x,long m,long y){
char a[36002][18];
for(i=x;i<=y;i++) strcpy(a[i],c[i]);
long i1=x;
long i2=m+1;
long k=x-1;
while(i1<=m&&i2<=y)
if(strcmp(a[i1],a[i2])<0) strcpy(c[++k],a[i1++]);
else strcpy(c[++k],a[i2++]);
for(i=i1;i<=m;i++) strcpy(c[++k],a[i]);
for(i=i2;i<=y;i++) strcpy(c[++k],a[i]);
}
void msort(long x,long y){
if(x!=y){
long m=(x+y)/2;
msort(x,m);
msort(m+1,y);
minter(x,m,y);
}
}
int main(){
FILE *f,*g;
f=fopen("restante.in","r");
g=fopen("restante.out","w");
fscanf(f,"%ld\n",&n);
for(t=1;t<=n;t++){
fgets(d,18,f);
sort(0,strlen(d)-1);
strcpy(c[t],d);
}
long nr=n*2;
msort(1,n);
for(i=1;i<=n;i++){
if (strcmp(c[i],c[i+1])==0){
if(i<n)
nr-=2;
}
else
if(strcmp(c[i-1],c[i])==0){
if(i>1)
nr-=2;
}
else nr--;
}
fprintf(g,"%ld\n",nr);
fclose(f);
fclose(g);
return 0;
}