Cod sursa(job #1863417)

Utilizator loghin.alexandruLoghin Alexandru loghin.alexandru Data 30 ianuarie 2017 21:31:01
Problema Xor Max Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb

#include <fstream>
#include <vector>

std::ifstream fin("xormax.in");
std::ofstream fout("xormax.out");


std::vector<int> numbers;


void read(unsigned int length)
{
	int n = 0;

	for (auto i = 0; i < length; i++)
	{
		fin >> n;
		numbers.push_back(n);
	}
}


int main()
{
	unsigned int length = 0;
	unsigned int start = 0, stop = 0;
	unsigned int lungime = 1;
	int max;
	fin >> length;
	read(length);
	max = numbers[0];


	if (numbers.size() < 2)
	{
		max = numbers[0];
		stop = 0;
		lungime = 1;
		fout << max << ' ' << stop + 2 - lungime << ' ' << stop + 1;
		return 0;
	}


	for (auto i = 1; i < numbers.size(); i++)
	{
		if ((numbers[i] ^ numbers[i - 1]) > max)
		{
			max = numbers[i] ^ numbers[i - 1];
			numbers[i] = max;
			stop = i;
			lungime++;
		}
		else
		{
			lungime = 1;
		}
	}
	fout << max << ' ' << stop + 2 - lungime << ' ' << stop + 1;

	return 0;
}