起初打的代码是这样的:
#include <bits/stdc++.h>
using namespace std;
int n;
int q;
int a[150];
bool flag[1000];
int i,j;
int w;
int main()
{
memset(flag, 0, sizeof(flag));
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
if(i!=j&&k!=i&&k!=j&&a[i]+a[j]==a[k])
{
q=a[i]+a[j];
flag[q]=1;
}
}
}
}
int sum=0;
for(int i=0;i<1145;i++) if(flag[i]==1) sum++;
cout<<sum;
return 0;
}
然而评测出来这样:

于是我又翻看讨论区,发现数组开小了
于是我改成了bool flag[100000]
但是确实不RE了,变成了这样:

为什么(qaq)