Cod sursa(job #466571)
| Utilizator | Data | 27 iunie 2010 10:47:54 | |
|---|---|---|---|
| Problema | Numarare | Scor | 30 |
| Compilator | c | Status | done |
| Runda | Stelele Informaticii 2010, clasele X-XII, Ziua 1 | Marime | 0.62 kb |
#include <stdio.h>
#define NMAX 100005
#define ll long long
int n,A[NMAX];
ll rez;
void read()
{
scanf("%d",&n);
int i;
for (i=1; i<=n; i++)
scanf("%d",&A[i]);
}
void solve()
{
int i,s,st,dr;
for (i=1; i<n; i++)
{
st=i; dr=i+1;
s=A[st]+A[dr];
while (st>1 && dr<n)
if (A[st-1]+A[dr+1]==s)
st--,dr++;
else
break ;
rez+=i-st+1;
}
}
int main()
{
freopen("numarare.in","r",stdin);
freopen("numarare.out","w",stdout);
read();
solve();
printf("%lld\n",rez);
return 0;
}
