Pagini recente » Cod sursa (job #1270396) | Cod sursa (job #657031) | Cod sursa (job #2080705) | Cod sursa (job #461291) | Cod sursa (job #236755)
Cod sursa(job #236755)
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int n,m,nrt;
char a[36005][20];
int divide (int p,int q)
{
char x[20];
int st,dr;
st=p;
dr=q;
strcpy (x,a[p]);
while (st<dr)
{
while (st<dr && strcmp (a[dr],x)>=0)
--dr;
strcpy (a[st],a[dr]);
while (st<dr && strcmp (a[st],x)<=0)
++st;
strcpy (a[dr],a[st]);
strcpy (a[st],x);
}
return st;
}
void qicksort (int p, int q)
{
int m;
m=divide (p,q);
if (m-1>p)
qicksort (p,m-1);
if (m+1<q)
qicksort (m+1,q);
}
void solve ()
{
int i;
if (strcmp (a[1],a[2]))
++nrt;
if (strcmp (a[n-1],a[n]))
++nrt;
for (i=2; i<n; ++i)
if (strcmp (a[i-1],a[i]) && strcmp (a[i],a[i+1]))
++nrt;
}
int main ()
{
freopen ("restante.in","r",stdin);
freopen ("restante.out","w",stdout);
int i;
scanf ("%d\n",&n);
for (i=1; i<=n; ++i)
{
gets (a[i]);
m=strlen (a[i]) ;
sort (a[i],a[i]+m);
}
qicksort (1,n);
/*for (i=1; i<=n; ++i)
printf ("%s\n",a[i]);*/
solve ();
printf ("%d",nrt);
return 0;
}