Cod sursa(job #1582323)
Utilizator | Marius info1972 | Data | 27 ianuarie 2016 20:36:38 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <cstdio>
#define k 8192
using namespace std;
long long int n,m,st[16000001],i,j,vf,a[8195],nr,val;
int main()
{
freopen("secv6.in","r",stdin);
freopen("secv6.out","w",stdout);
scanf("%lld",&n);
if (k<=n) m=k;
else m=n;
for (i=0;i<m;i++) scanf("%lld",&a[i]);
for (i=0;i<n;i++)
{
val=i+(a[i/k]^a[i%k]);
while (vf>0 && st[vf]<=val)
{
nr++;
vf--;
}
if (vf==0) st[++vf]=val;
else {
nr++;
st[++vf]=val;
}
}
printf("%lld",nr);
}