Pagini recente » Cod sursa (job #1252414) | Cod sursa (job #369025) | Cod sursa (job #2254740) | Cod sursa (job #958570) | Cod sursa (job #121680)
Cod sursa(job #121680)
#include<fstream.h>
#define dim 40000
long n,a[dim],rez;
int p2[7]={1,2,4,8,16,32,64};
char oo[dim];
long max(long x,long y)
{return x>y ? x:y;}
int main()
{long i,j,k;
ifstream f("oo.in");
ofstream g("oo.out");
int ind,x;
char mask;
f>>n;
for(i=0;i<n;i++)
{f>>x;
ind=6;
while(x)
{if(x>=p2[ind])
{mask=1;mask=mask<<ind;
oo[i]=oo[i]|mask;
x=x-p2[ind];
ind--;
}
else ind--;
}
}
f.close();
if(n==2) rez=(int)oo[0]+(int)oo[1];
else
for(k=0;k<=2;k=(k+1)%n)
{a[k]=0;a[(k+1)%n]=0;
a[(k+2)%n]=oo[(k+1)%n]+oo[(k+2)%n];
for(i=(k+3)%n;i!=k;i=(i+1)%n)
a[i]=max(a[(i-1+n)%n],a[(i-3+n)%n]+(int)oo[(i-1+n)%n]+(int)oo[i]);
rez=max(rez,a[(k-1+n)%n]);
}
g<<rez<<'\n';
g.close();
return 0;
}