题意:给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性
分析:
类似cf的题目,比赛的时候都没想出来,简直笨到极点。。。。。
最后的差确定,只需要计算和的种类,有多少种就是多少。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <algorithm>
#define LL __int64
const int maxn = +;
using namespace std;
int a[maxn]; int main()
{
int i, t, n, ca = , ans, f;
scanf("%d", &t);
while(t--)
{
ans = ; f = ;
scanf("%d", &n);
for(i = ; i <= n; i++)
{
scanf("%d", &a[i]);
if(i>=)
{
if(a[i-]== && a[i]==)
ans ++;
if(a[i-]== && a[i]==)
ans ++;
if(a[i-]==a[i] && a[i]!=) //这两种都是不符合规则的
f = ;
if(abs(a[i]-a[i-])>)
f = ;
}
}
if(f)
printf("Case #%d: 0\n", ca++); //不存在的情况
else if(a[n]==)
printf("Case #%d: %d\n", ca++, ans+); //最后分差为0,结果少了一半
else
printf("Case #%d: %d\n", ca++, *ans+);
}
return ;
}