Cod sursa(job #322678)

Utilizator GulyanAlexandru Gulyan Data 9 iunie 2009 16:59:33
Problema Xor Max Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.82 kb
#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;
}