珂朵莉与宇宙
一道挺简单的思维题,想了好久没想出来,写个博客记录一下。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+600;
int vis[N];
int main() {
int n;
scanf("%d",&n);
int cut=0;
vis[cut]++;
ll ans=0;
for(int i=1; i<=n; ++i) {
int x;
scanf("%d",&x);
cut+=x;
for(int j=0; j*j<=cut; ++j) {
ans+=1ll*vis[cut-j*j];
}
vis[cut]++;
}
printf("%lld\n",ans);
return 0;
}