### vohrab1896's blog

By vohrab1896, history, 7 weeks ago, ,

Hey CF Community! I have done this question ( https://codeforces.com/contest/1300/problem/C ) using prefix and suffix arrays but getting WA. As explained in the editorial firstly I calculated prefix and suffix value (~a[0])&(~a[1])... for each location. Then multiplied by a[i] for each i. But, I am getting WA. Following is my code. Please feel free to help. Thanks.

# include<bits/stdc++.h>

using namespace std;

# define fore(i,n) forn(i,0,n)

int a[100001]; int prefix[100001],suffix[100001]; int main() { int n;

cin>>n;

fore(i,n)
cin>>a[i];

int ipos=0;

forn(i,0,n)
{
if(i==0)
prefix[0]=1073741823;
else prefix[i]=prefix[i-1]&(~(a[i-1]));
}

for(int i=n-1;i>=0;i--)
{
if(i==n-1)
suffix[i]=1073741823;
else suffix[i]=(~a[i+1])&(suffix[i+1]);
}
int max_val=INT_MIN;
for(int i=0;i<=n-1;i++)
{
if(a[i]&(prefix[i]&suffix[i])>max_val)
{
max_val=a[i]&(prefix[i]&suffix[i]);
ipos=i;
}
}
cout<<a[ipos];

fore(i,n)
if( ipos!=i)
cout<<" "<<a[i];

return 0;


}

• -27

 » 7 weeks ago, # |   0 Auto comment: topic has been updated by vohrab1896 (previous revision, new revision, compare).
 » 7 weeks ago, # |   0 Auto comment: topic has been updated by vohrab1896 (previous revision, new revision, compare).