Problem Description
In the world line 1.048596%
在反覆上演的梦境中,两年前的梓川咲太坐在通往沙滩的阶梯,心不在焉地看着七里滨的海。
这也一定是梦,接下来的进展他早已知晓。翔子小姐就要来了。
“咲太小弟今天的心情也处于低潮呢。”,翔子踩着轻快脚步现身,坐在咲太身旁。
“翔子小姐今天也有点烦人呢。”
“即使每天来到海边也没有治愈荒废的心吗?我来告诉你摆脱无聊的方法。我从一个朋友那边听来的。”出乎意料的,翔子小姐站了起来。
“难道是数质数吗?别开玩...”,梓川咲太的话没说完,就被翔子小姐拉到海边,然后一起捡贝壳。
捧满贝壳的梓川咲太,又被拉着用脚在沙滩上踩出圆环的形状。
然后翔子小姐又把贝壳随意的放在圆环上。
做完这一切后,翔子小姐又拉着咲太小弟站到了防波堤上面。
“那么咲太小弟,你知道这些贝壳里面能形成多少个不重复的矩形吗?”
“两个矩形不相同当且仅当选取的四个贝壳的位置不同哦。”
咲太小弟不过是普通的初中生,也许这个问题只有翔子小姐才知道如何解答。
“不要觉得自己不会哦,这无关能力的事情。”翔子小姐温柔的说。
“我的朋友这样说过,许多失败了的未来,无法挽回的过去,但是肯定在这之后,会有连接到......”
......
咲太任凭情感漩涡驱使而想要转身,但是做不到。
梦醒了。
Input
多组输入输出
对于每组样例,第一行一个正整数n(n<=300),代表圆环上有多少个贝壳。
接下来n行分别为这n个贝壳所分割的各个圆弧的长度s(1<=s<=15)。
输入保证:
1:每组样例给出的圆弧的长度按顺时针的顺序给出。
2:所有样例输入的n的和不超过500
Output
对于每组样例,输出一个整数,代表能形成不同矩形的个数
Sample Input
8 1 2 2 3 1 1 3 3
Sample Output
3
Hint
样例的图如下
#include<iostream>
using namespace std;
int main() {
int a[300+10];
int n,m,j,k,i,T,x;
while (cin>>n)
{
int sum=0,ans=0;
a[0] = 0;
for (i=1; i<=n; i++)
{
cin>>x;
sum+=x;
a[i] = sum;
}
for (int w =0; w<=n-4; w++ )
{
for (int x = w+1; x<=n-3; x++)
{
for (int y = x+1; y<=n-2; y++)
{
for (int z=y+1; z<=n-1; z++)
{
if (a[x]-a[w]==a[z]-a[y] && a[y]-a[x]==sum-a[z]+a[w])
ans++;
}
}
}
}
cout<<ans<<endl;
}
return 0;
}