Pagini recente » Cod sursa (job #1054653) | Cod sursa (job #385003) | Cod sursa (job #2202468) | Cod sursa (job #3131366) | Cod sursa (job #206832)
Cod sursa(job #206832)
/*restante*/
#include<fstream.h>
#include<string.h>
long n,contor;
char s[36005][20],s1[20],cit[2];
ifstream fin("restante.in");
ofstream fout("restante.out");
void pivotare(long i,long j,long &m)
{
char pivot=s1[i];
while(i<j)
{
while(j>i && s1[j]>=pivot) j--;
s1[i]=s1[j];
while(i<j && s1[i]<=pivot) i++;
s1[j]=s1[i];
}
s1[i]=pivot;
m=i;
}
void quick_sort(long p,long q)
{
long m;
if(p<q)
{
pivotare(p,q,m);
quick_sort(p,m-1);
quick_sort(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)
{
pivotare(p,q,m);
quick_sort(p,m-1);
quick_sort(m+1,q);
}
}
int main()
{
long i;
fin>>n;
fin.getline(cit,2);
for(i=0;i<n;i++)
fin.getline(s[i],20);
for(i=0;i<n;i++)
{
strcpy(s1,s[i]);
quick_sort(0,strlen(s[i])-1);
strcpy(s[i],s1);
}
quick_sort1(0,n-1);
for(i=0;i<n-1;i++)
{
if(strcmp(s[i],s[i+1])!=0&& strcmp(s[i],s[i-1])!=0)
contor++;
//fout<<s[i]<<'\n';
}
if(strcmp(s[n-1],s[n-2])!=0)
contor++;
fout<<contor<<'\n';
fout.close();
return 0;
}