Pagini recente » Istoria paginii runda/cei_mai_mari_olimpicari_runda_2/clasament | Autentificare | 253913 | Cod sursa (job #1049614) | Cod sursa (job #466768)
Cod sursa(job #466768)
#include <algorithm>
using namespace std;
#define DIM 100005
#define MAX 10005
unsigned int f[DIM];
unsigned int nrt;
int n,poz=MAX-1;
char buff[MAX];
int v[DIM];
inline void cit (int &nr)
{
char semn;
for (semn=1; !('0'<=buff[poz] && buff[poz]<='9'); )
{
if (buff[poz]=='-')
semn=-1;
if (++poz==MAX)
{
fread (buff,1,MAX,stdin);
poz=0;
}
}
for (nr=0; '0'<=buff[poz] && buff[poz]<='9'; )
{
nr=nr*10+buff[poz]-'0';
if (++poz==MAX)
{
fread (buff,1,MAX,stdin);
poz=0;
}
}
nr*=semn;
}
void read ()
{
int i;
cit (n);
for (i=1; i<=n; ++i)
cit (v[i]);
}
void solve ()
{
int cen,i,j,lg;
for (cen=1; cen<n; ++cen)
{
lg=0;
for (i=cen, j=cen+1; i>=1 && j<=n; --i, ++j)
if (v[i]+v[j]==v[cen]+v[cen+1])
lg=j-cen;
else
break ;
++f[lg];
}
for (i=n/2; i>1; --i)
f[i-1]+=f[i];
for (i=1; i<=n/2; ++i)
nrt+=f[i];
printf ("%u",nrt);
}
int main ()
{
freopen ("numarare.in","r",stdin);
freopen ("numarare.out","w",stdout);
read ();
solve ();
return 0;
}