# UVA 10444

Thinking: This question is quite easy if you read it more carefully and actually the problem has already told you how to solve it.

Tip : Since sometimes factorial(n) can be quite large, long long int should be used to avoid run time error.

AC code:

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#define MIN(a,b) ((a)<(b)?(a):(b))
#define lli long long int
using namespace std;

lli fac(lli n)
{
lli result = 1;
for (lli i = 1; i <= n; i++)
result *= i;
return result;
}

lli combination(int n, int r)
{
if (r == 0||n == r)
return 1;
if (r > n)
return 0;
lli facn = fac(n);
lli facr = fac(r);
lli facnmr = fac(n - r);
return facn /(facr*facnmr);
}

int main()
{
//freopen("in.txt", "r", stdin);
int n, p;
int T = 0;
while (scanf("%d%d", &n, &p) && (n || p))
{
T++;
if (n == 0)
{
printf("Case %d: %d\n", T, 0);
continue;
}
int result = 0;
int moved = 0;
for (int k = 0; 1; k++)
{
int num = combination(p - 3 + k, MIN(k, p - 3));
int cost = 1 << k;
if (moved + num >= n)
{
int remain = n - moved;
result += cost*remain;
break;
}
else
{
moved += num;
result += cost*num;
}
}
printf("Case %d: %d\n", T, result);
}
return 0;
}

#### hnu 10444 The milliard Vasya's function（母函数）

2014-12-27 01:40:49

#### Uva练习题

2014年01月09日 49KB 下载

#### uva最全ac代码

2013年07月04日 4.18MB 下载

#### Uva 数据

2014-04-03 18:30:00

#### uva uva 1328 - Period ---KMP算法

2015-08-27 22:32:47

#### UVA - 12001 UVa Panel Discussion

2014-08-16 15:32:53

#### 【UVA】uva 11464

2014-08-12 17:55:44

#### UVa 272

2015-01-17 23:31:50

#### UVA 12657

2014-12-19 17:03:29

#### UVA 679

2015-10-30 18:28:59