SRM 491 DIV1 Easy - FoxMakingDice

問題


http://community.topcoder.com/stat?c=problem_statement&pm=11234&rd=14244

解き方


Kを固定することで、そのKを作ることのできる組み合わせの数を
求めることができる。

よって、すべてのKについて作ることのできるサイコロの数を足していけばよい。

コード


class FoxMakingDice {

public: long long theCount(int N, int K) {
long long ret=0;

for(int sum=K;sum<=2*N;sum++){
long long cnt=0;
for(int j=1;j<sum-j;j++){
if(j<=N && sum-j<=N)cnt++;
}
if(cnt>=3)ret+=2*cnt*(cnt-1)*(cnt-2)/6;
}

return ret;
}

};

Share this

Related Posts