Cod sursa(job #447468)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 28 aprilie 2010 20:23:38
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

#define file_in "triplete.in"
#define file_out "triplete.out"

long long n,m,grad[100000];
char ch[100];


void citire()
{
	long long i,x,y,j;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%lld %lld\n", &n, &m);
	for (i=1;i<=m;++i)
	  {
	   gets(ch);
	   x=y=j=0;
	   while (ch[j]!=' ')
		  {
			x=x*10+ch[j]-'0';
			j++;
			}
			j++;
	   while (ch[j])
	   {
		y=y*10+ch[j]-'0';
		j++;
		}
	   grad[x]++;
	   grad[y]++;
	   }

}


void solve()
{
	long long i,nr;
	long long s=0,ss;
	for (i=1;i<=n;++i) 
		 grad[i]=n-1-grad[i];      
	for (i=1;i<=n;++i)
		 s+=((n-1-grad[i])*grad[i]);
	ss=(n*(n-1)*(n-2))/6;
	printf("%lld", ss-s/2);
}

int main()
{
	citire();
    solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}