Cod sursa(job #1513299)

Utilizator JokesWarMihai Baruta JokesWar Data 29 octombrie 2015 12:05:21
Problema Xor Max Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

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

long n, a[100003], i, j, sum, k, ma, sa, so;

int main()
{
    fin >> n;

    for(i = 1; i <= n; i++)
    {
        fin >> a[i];
        if(a[i] > ma)
        {
            ma = a[i];
            sa = so = i;
        }
    }

    if(n == 1) {fout << a[1] << " 1 1"; return 0;}
    else sum = a[1] ^ a[2];

    if(sum > ma) {ma = sum; sa = 1; so = 2;}

    k = 2;

    for(i = 2; i <= n; i++)
    {
        for(j = k+1; j <= n; j++)
        {
            sum = sum ^ a[j-k] ^ a[j];
            if(sum > ma)
            {
                ma = sum;
                sa = j-k+1;
                so = j;
            }
        }
        k++;
    }

    fout << ma << " " << sa << " " << so;

    return 0;
}