Pagini recente » Cod sursa (job #3136586) | Cod sursa (job #2050452) | Cod sursa (job #3274088) | Cod sursa (job #3194541) | Cod sursa (job #322678)
Cod sursa(job #322678)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
int main()
{
//Deschidere fisiere
freopen("xormax.in", "r", stdin);
freopen("xormax.out", "w", stdout);
int n, i;
unsigned long *v, *v2;//vectorul original si vectorul auxilira
unsigned long max, maxp, maxi, pas;
//Citire date
scanf("%d", &n);
v = (unsigned long *) malloc( n * sizeof(*v) );
v2 = (unsigned long *) malloc( n * sizeof(*v2) );
for( i = 0; i < n; ++i ){
scanf("%ld", v + i);
v2[i] = v[i];
}
max = 0;//minimul
maxp = 0;
maxi = 0;
for( pas = 1; pas < n; pas++ ){
for( i = 0; i < n - pas; ++i){
v2[i] ^= v[i + pas];
if( v2[i] > max){
max = v2[i];
maxp = pas;
maxi = i;
}
}
}
printf("%ld %ld %ld", max, v[maxi], v[maxi + maxp]);
//Eliberare memorie
free( v );
free( v2 );
return 0;
}