UVa 11401 Triangle Counting(数学的繰返し)

865 ワード

xを最長エッジとするシナリオ数はc(x)である.3辺はx-y注意:
forループプッシュを使用する場合、ループ変数iが演算に関与する場合は、intが爆発するかどうかに注意し、long longにします!
コード:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#include <algorithm>
#define LL long long
LL a[1000005];
int N;
int main(){
	a[1]=0;
	for(LL i=2;i<=1000000;i++){
		a[i]=a[i-1]+((i-1)*(i-2)/2-i/2+1)/2;
	}
	while(~scanf("%d",&N)){
		if(N<3) break;
		printf("%lld
",a[N]); } return 0; }