@sensitive-cs
2016-10-04T16:44:45.000000Z
字数 392
阅读 724
题意为n个人站一排,一个人的前面至少有a个人,后面至多有b个人,求此人可能的位置有多少种。
当满足n个人的条件时,让前面的人的个数从a增加到n,后面的人的个数从0增加到b,用一个flag标记共有多少种站法使得条件成立,最后输出flag。
#include <stdio.h>
int m[111];
int main()
{
int n,a,b;
while (scanf("%d%d%d",&n,&a,&b) != EOF)
{
int i,j,cal = 0;
for (i = 1;i <= n;i++)
m[i] = 6;
for (i = a;i <= n;i++)
for (j = 0;j <= b;j++)
{
if (i+j+1 == n)
{
m[i+1] = 8;
}
}
for (i = 1;i <= n;i++)
{
if (m[i] == 8)
cal++;
}
printf("%d\n",cal);
}
return 0;
}