Pagini recente » Cod sursa (job #889971) | Cod sursa (job #1922591) | Cod sursa (job #2101799) | Cod sursa (job #1690955) | Cod sursa (job #219803)
Cod sursa(job #219803)
#include<stdio.h>
#define N 14000
struct p
{
int e;
};
struct prieten
{
int a,b,c,d;
};
int n,m; p v[N];
prieten x[N];
int sortare(int i)
{
int aux[4],s,j;
aux[0]=x[i].a;
aux[1]=x[i].b;
aux[2]=x[i].c;
aux[3]=x[i].d;
do
{
s=1;
for ( j=0; j<3; ++j)
if (aux[j]>aux[j+1])
{
int a=aux[j];
aux[j]=aux[j+1];
aux[j+1]=a;
s=0;
}
}
while (!s);
int nr=0;
for ( j=0; j<3;++j)
if (aux[j]!=aux[j+1])
nr=nr*10+aux[j];
nr=nr*10+aux[3];
return nr;
}
void compar(int cnum)
{
int s=1,i;
do
{
s=1;
for (i=1; i<cnum; ++i)
if (v[i].e>v[i+1].e)
{
int a=v[i].e;
v[i].e=v[i+1].e;
v[i+1].e=a;
s=0;
}
}
while (!s);
int num=1;
for (i=1; i<cnum; ++i)
if (v[i].e!=v[i+1].e)
num++;
printf("%d",num);
}
void citire()
{
scanf("%d%d",&n,&m);
int num=0;
for (int i=1; i<=m*2; ++i)
{
scanf("%d",&v[i].e);
if ((i>3)&&((v[i-3].e==v[i-2].e)||(v[i-2].e==v[i-1].e)||(v[i-1].e==v[i].e)||(v[i-3].e==v[i-1].e)||(v[i-3].e==v[i].e)||v[i-2].e==v[i].e))
{
x[i-3].a=v[i-3].e;
x[i-3].b=v[i-2].e;
x[i-3].c=v[i-1].e;
x[i-3].d=v[i].e;
num++;
}
}
int cnum=num;
for ( i=1;i<=m*2-3; ++i)
{
if (x[i].a)
{
v[num--].e=sortare(i);
}
}
compar(cnum);
}
int main()
{
freopen("triplete.in","r",stdin);
freopen("triplete.out","w",stdout);
citire();
}