本题比赛时被hack的人好多 - -。
注意坑点:
3
2147483645 2147483646 2147483644
Answer : 1
#include <stdio.h>
#include <string.h>
#include <map>
#include <algorithm>
#define INT_MAX 2147483647
using namespace std;
int main()
{
int n, k = 1;
long long ans;
long long a[1000];
while(~scanf("%d", &n))
{
ans = 0;
map<int, int> mm;
int cnt = 0, tmp;
for(int i = 0; i < n; i++)
{
scanf("%d", &tmp);
if(!mm[tmp])
{
a[cnt++] = tmp;
}
mm[tmp]++;
}
if(cnt == 1)
{
printf("Case #%d: -1\n", k++);
continue;
}
sort(a, a+cnt);
for(int i = 0 ; i < cnt; i++)
{
if((a[(i - 1 + cnt) % cnt] + a[(i - 2 + cnt) % cnt]) % INT_MAX == a[i])
{
ans += mm[a[(i - 1 + cnt) % cnt]];
}
}
printf("Case #%d: %d\n", k++, ans);
}
return 0;
}