您的位置:首页 > 其它

Codeforces 630G Challenge Pennants【组合数学】

2016-04-09 20:38 295 查看
G. Challenge Pennants

time limit per test
0.5 seconds

memory limit per test
64 megabytes

input
standard input

output
standard output

Because of budget cuts one IT company established new non-financial reward system instead of bonuses.

Two kinds of actions are rewarded: fixing critical bugs and suggesting new interesting features. A man who fixed a critical bug gets "I fixed a critical bug" pennant on his table. A man who suggested a new interesting feature gets "I suggested a new feature"
pennant on his table.

Because of the limited budget of the new reward system only 5 "I fixed a critical bug" pennants and 3 "I
suggested a new feature" pennants were bought.

In order to use these pennants for a long time they were made challenge ones. When a man fixes a new critical bug one of the earlier awarded "I fixed a critical bug" pennants is passed on to his table. When a man suggests a new interesting feature one of the
earlier awarded "I suggested a new feature" pennants is passed on to his table.

One man can have several pennants of one type and of course he can have pennants of both types on his table. There are n tables in the
IT company. Find the number of ways to place the pennants on these tables given that each pennant is situated on one of the tables and each table is big enough to contain any number of pennants.

Input

The only line of the input contains one integer n (1 ≤ n ≤ 500)
— the number of tables in the IT company.

Output

Output one integer — the amount of ways to place the pennants on n tables.

Examples

input
2


output
24


两种锦旗的发放方式

A种锦旗1 1 1 1 1 1 1 12 1 1 3 1 4 23

B种锦旗 1 1 1 1 2 3

#include <iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#define maxn 510
using namespace std;
//11111 1112 113 122 14 23 5
__int64 C(int n,int m)
{
__int64 s=1;
if(m>n)
return 0;
if(m==n)
return 1;
if(m==1)
return n;
for(int i=0;i<m;++i)
s=s*(n-i);
for(int i=1;i<=m;++i)
s=s/i;
return s;
}
int main()
{
int n;//111 12 3
__int64 sum1,sum2,ans;
while(~scanf("%d",&n))
{
sum1=sum2=ans=0;
sum1=C(n,5)+4*C(n,4)+3*C(n,3)+3*C(n,3)+2*C(n,2)+2*C(n,2)+C(n,1);
sum2=C(n,3)+2*C(n,2)+C(n,1);
ans=sum1*sum2;
printf("%I64d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: