Cod sursa(job #138593)

Utilizator Mishu91Andrei Misarca Mishu91 Data 18 februarie 2008 21:44:25
Problema Xor Max Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>

FILE *fin=freopen("xormax.in","r",stdin),
     *fout=freopen("xormax.out","w",stdout);
     
long n,a[100001],x[100001];

void citire()
{
  scanf("%ld",&n);
  for(int i=0;i<n;i++) 
    scanf("%ld",&a[i]);
}
     
void solve()
{
  x[0]=a[0];
  long max=x[0],poz=0;
  for(int i=1;i<n;i++)
  {
     x[i]=((x[i-1]^a[i])>a[i])?x[i-1]^a[i]:a[i]; 
     if(x[i]>max) max=x[i],poz=i;
  }
  long pom=poz;
  while((x[pom-1]^a[pom])==x[pom])
    pom--;
  printf("%ld %ld %ld",max,pom+1,poz+1);
}

int main()
{
  citire();
  solve();
  return 0;
}