Pagini recente » Cod sursa (job #1436334) | Cod sursa (job #3225368) | Cod sursa (job #2880034) | Cod sursa (job #1618380) | Cod sursa (job #142041)
Cod sursa(job #142041)
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
short int v[36009]={0};
void transform(char t[36009][20],int lin,int n){
int i,aux,inj,gata;
for(i=n;i>=1;i--)
t[lin][i]=t[lin][i-1];
inj=n;
t[lin][0]=n;
while(inj>1){
inj/=2;
do{
gata=1;
for(i=1;i<=n-inj;i++)
if(t[lin][i]>t[lin][i+inj]){
aux=t[lin][i];
t[lin][i]=t[lin][i+inj];
t[lin][i+inj]=aux;
gata=0;
}
}
while(!gata);
}
}
void copiere(char t[36009][20],int x,int y){
char m[36009],i;
memcpy(m,t[x],sizeof(t[x]));
memcpy(t[x],t[y],sizeof(t[y]));
memcpy(t[y],m,sizeof(m));
for(i=t[x][0]+1;i<20;i++)
t[x][i]='\0';
for(i=t[y][0]+1;i<20;i++)
t[y][i]='\0';
}
int main(){
char m[36009][20];
int i,j,n,x,cn,inj,gata,c=0;
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
scanf("%d",&n);
cn=n;
for(i=1;i<=n;i++){
scanf("%s",&m[i]);
x=strlen(m[i]);
transform(m,i,x);
}
inj=n;
while(inj>1){
inj/=2;;
do{
gata=1;
for(i=1;i<=n-inj;i++){
x=0;
x=strcmp(m[i]+1,m[i+inj]+1);
if(x==1){
copiere(m,i,i+inj);
gata=0;}
}
}
while(!gata);
}
for(i=1;i<n;i++)
if(strcmp(m[i]+1,m[i+1]+1)==0) { v[i]=1; v[i+1]=1; }
for(i=1;i<=n;i++)
if(!v[i]) c++;
printf("%d",c);
return 0;
}