Pagini recente » Istoria paginii utilizator/mihaitamoglan | Cod sursa (job #1107898) | Cod sursa (job #1403057) | Cod sursa (job #251229) | Cod sursa (job #762232)
Cod sursa(job #762232)
#include<fstream>
#include<string>
using namespace std;
typedef struct lnod{
unsigned int vf;
struct lnod *next;
}*Nod;
Nod a[4100];
string s;
int main(void)
{
ifstream fin("triplete.in");
ofstream fout("triplete.out");
unsigned int i,l,t,x,y,N,M,m1,m2,NR=0; Nod p,q,z;
fin>>N>>M; getline(fin,s);
for(i=1;i<=M;++i)
{
getline(fin,s); l=s.length();
t=x=y=0;
while(s[t]<='9' && s[t]>='0'){
x=(x*10)+(s[t]-'0');
++t;
}
++t;
while(s[t]<='9' && s[t]>='0' && t<l){
y=(y*10)+(s[t]-'0');
++t;
}
if(x<y){
Nod p = new lnod;
p->vf = y;
p->next = a[x];
a[x] = p;
}
else{
p = new lnod;
p->vf = x;
p->next = a[y];
a[y] = p;
}
}
for(i=1;i<=N;++i)
if(a[i] && a[i]->next)
for(p=a[i];p;p=p->next)
for(q=p->next;q;q=q->next)
{
if(p->vf<q->vf){ m1=p->vf; m2=q->vf; }
else { m1=q->vf; m2=p->vf; }
for(z=a[m1];z;z=z->next)
if(z->vf==m2)
++NR;
}
fout<<NR<<'\n';
return 0;
}