Cod sursa(job #2078336)

Utilizator vgezaVekov Geza vgeza Data 29 noiembrie 2017 12:59:29
Problema Xor Max Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>

void ki(int **a, int n){
    for (int i=0;i<n;++i){
        printf("%d ",a[i]);
    }
    printf("\n");
}

int main(){
    freopen("xormax.in","r",stdin);
    freopen("xormax.out","w",stdout);
    int n;
    scanf("%d",&n);
    int *a = (int*)calloc(n,sizeof(int));
    int *b = (int*)calloc(n,sizeof(int));
    for (int i=0;i<n;++i){
        scanf("%d",&a[i]);
    }

    int maxx=-1,pos=-1,len=n+1;
    for (int i=0;i<n;++i){
        b[i]=a[i];
        for (int j=i+1;j<n;++j){
            b[j]=b[j-1] ^ a[j];
            if (b[j]>maxx || (b[j]==maxx && j-i+1<len)){
                maxx=b[j];
                pos=i;
                len=j-i+1;
            }
        }
    }

    printf("%d ",maxx);
    ki(a+pos,len);

    return 0;
}