Pagini recente » Cod sursa (job #2549544) | Cod sursa (job #2952374) | Cod sursa (job #1134019) | Cod sursa (job #523091) | Cod sursa (job #210539)
Cod sursa(job #210539)
/*restante*/
#include<fstream.h>
#include<string.h>
long n,contor;
char s[36005][20],cit[2];
ifstream fin("restante.in");
ofstream fout("restante.out");
void pivotare(long k,long i,long j,long &m)
{
char pivot=s[k][i];
while(i<j)
{
while(j>i && s[k][j]>=pivot) j--;
s[k][i]=s[k][j];
while(i<j && s[k][i]<=pivot) i++;
s[k][j]=s[k][i];
}
s[k][i]=pivot;
m=i;
}
void quick_sort(long k,long p,long q)
{
long m;
if(p<q)
{
pivotare(k,p,q,m);
quick_sort(k,p,m-1);
quick_sort(k,m+1,q);
}
}
void pivotare1(long i,long j,long &m)
{
char pivot[20];
strcpy(pivot,s[i]);
while(i<j)
{
while(j>i && strcmp(s[j],pivot)>=0) j--;
strcpy(s[i],s[j]);
while(i<j && strcmp(s[i],pivot)<=0) i++;
strcpy(s[j],s[i]);
}
strcpy(s[i],pivot);
m=i;
}
void quick_sort1(long p,long q)
{
long m;
if(p<q)
{
pivotare1(p,q,m);
quick_sort1(p,m-1);
quick_sort1(m+1,q);
}
}
int main()
{
long i,ok;
fin>>n;
fin.getline(cit,2);
for(i=0;i<n;i++)
fin.getline(s[i],20);
for(i=0;i<n;i++)
quick_sort(i,0,strlen(s[i])-1);
quick_sort1(0,n-1);
for(i=0;i<n;i++)
{
ok=0;
while(strcmp(s[i],s[i+1])==0)
{
i++;
ok=1;
}
if(ok==0)
contor++;
}
fout<<contor<<'\n';
fout.close();
return 0;
}