Cod sursa(job #8032)

Utilizator love_for_uSpancioc Riana love_for_u Data 23 ianuarie 2007 18:33:52
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#define NMAX 5002
#define XMAX 2501

int g[NMAX];
int i, N, M, a, b;
long long rez, cnt;

int main()
{
     freopen("triplete.in","r",stdin);
     freopen("triplete.out","w",stdout);

     scanf("%d %d", &N, &M);

     if (N == 1) { printf("0\n"); return 0; }
     if (N == 2) { printf("0\n"); return 0; }
     if (N == 3 && M != 3) { printf("0\n"); return 0;}

     rez = 1;
     cnt = 0;

     for (i = 1; i <= M; i++)
     {
          scanf("%d %d", &a, &b);
          g[a]++;
          g[b]++;
     }

     for (i = 1; i <= XMAX; i++)
     {
          if (i >= N - 3 + 1 && i <= N) rez *= i;

          cnt += g[i] * (N-1-g[i]);
     }

     rez /= 6;

     cnt /= 2;

     rez -= cnt;

     printf("%lld\n", rez);

     return 0;
}