fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int N,M;
  8. scanf("%d%d",&N,&M);
  9.  
  10. int i,j,k;
  11.  
  12. int mat[N][N];
  13.  
  14. for(i=0;i<N;i++){for(j=0;j<N;j++){mat[i][j]=0;}}
  15.  
  16.  
  17.  
  18. for(i=0;i<M;i++)
  19. {
  20. int a,b;
  21. scanf("%d%d",&a,&b);
  22. a--;b--;
  23. mat[a][b]=1;
  24. }
  25.  
  26. int mat2[N][N];
  27. for(i=0;i<N;i++){for(j=0;j<N;j++){mat2[i][j]=0;}}
  28.  
  29. vector<int> Adj[N];
  30.  
  31. for(i=0;i<N;i++)
  32. {
  33. for(j=0;j<N;j++)
  34. {
  35. if(mat[i][j])Adj[i].push_back(j);
  36. }
  37. }
  38.  
  39. for(i=0;i<N;i++)
  40. {
  41. for(j=0;j<Adj[i].size();j++)
  42. {
  43. int v=Adj[i][j];
  44. for(k=0;k<Adj[v].size();k++)
  45. {
  46. int v2=Adj[v][k];
  47. if(v2!=i)
  48. {
  49. mat[i][v]++;
  50. }
  51. }
  52. }
  53. }
  54.  
  55. long long ans=0;
  56.  
  57. for(i=0;i<N;i++)
  58. {
  59. for(j=0;j<N;j++)
  60. {
  61. ans+=(mat2[i][j]*(mat2[i][j]-1))/2;
  62. }
  63. }
  64.  
  65. printf("%d\n",ans);
  66.  
  67. return 0;
  68. }
Success #stdin #stdout 0s 4376KB
stdin
4 12
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
stdout
0