Cod sursa(job #35359)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 21 martie 2007 23:51:27
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>

using namespace std;

fstream fin,fout;

long n,m,t,p,i,j,u,v;
int a[2049][4097];
int main(void)
{
fin.open("triplete.in",ios::in);
fout.open("triplete.out",ios::out);
fin>>n>>m;
p=2048; if (n<2048)p=n;
for (i=1;i<=p;i++)
  for (j=1;j<=n;j++)
   a[i][j]=0;
for (i=1;i<=m;i++)
  {
  fin>>u>>v;
  if (u<=p) a[u][v]=1;
  if (v<=p) a[v][u]=1;
  }
t=0;
fin.open("triplete.in",ios::in);
fin>>n>>m;
for (i=1;i<=m;i++)
  {
  fin>>u>>v;
  for (j=1;j<=p;j++)
    if (a[j][u]&&a[j][v])
      t++;
  }
if (p<n)
{
fin.open("triplete.in",ios::in);
fin>>n>>m;
for (i=1;i<=n-2048;i++)
  for (j=1;j<=n;j++)
   a[i][j]=0;
for (i=1;i<=m;i++)
  {
  fin>>u>>v;
  if (u-2048>0) a[u-2048][v]=1;
  if (v-2048>0) a[v-2048][u]=1;
  }

fin.open("triplete.in",ios::in);
fin>>n>>m;
for (i=1;i<=m;i++)
  {
  fin>>u>>v;
  for (j=1;j<=n-2048;j++)
    if (a[j][u]&&a[j][v])
      t++;
  }
}
t=t/3;
fout<<t<<endl;
fin.close();
fout.close();
return 0;
}