我们直接用四重循环暴力枚举即可。
重复怎么办?
我们可以让后两重循环的循环变量从
i
+
1
,
j
+
1
i+1,j+1
i+1,j+1,开始就好了。
A C C o d e AC~Code AC Code
//直接模拟,不多解释
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int a[50],b[50],ans;
int v[10010];
int main()
{
freopen("backforth.in","r",stdin);
freopen("backforth.out","w",stdout);
for(int i=1; i<=10; i++)
cin>>a[i];
for(int i=1; i<=10; i++)
cin>>b[i];
v[1000]=1;
for(int i=1; i<=10; i++)
for(int j=1; j<=10; j++)
v[1000+b[i]-a[j]]=1;
for(int i=1; i<=9; i++)
for(int j=1; j<=9; j++)
for(int k=i+1; k<=10; k++)
for(int l=j+1; l<=10; l++)
v[1000+b[i]-a[j]+b[k]-a[l]]=1;
for(int i=1000-198; i<=1000+198; i++)
if(v[i]==1)
ans++;
cout<<ans;
return 0;
}