Cod sursa(job #2763415)

Utilizator Razvan86Razvan Gabriel Razvan86 Data 13 iulie 2021 21:23:25
Problema Xor Max Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;

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

int main()
{
    int n; int v[100005];
    int maximul=0,initialul,finalul;
    fin >> n;
    for (int i=1; i<=n; i++)
        fin >> v[i];
    for (int i=1; i<n; i++)
    {
        int partial = v[i],initialp=i;
        for (int j=i+1; j<=n; j++)
        {
            partial = partial^v[j];
            if (partial>maximul)
            {
                maximul = partial;
                initialul = initialp;
                finalul = j;
            }
            else if (partial==maximul)
            {
                if (j<finalul)
                {
                    maximul = partial;
                    initialul = initialp;
                    finalul = j;
                }
                else if (j==finalul)
                {
                    if (j-initialp<finalul-initialul)
                    {
                        maximul = partial;
                        initialul = initialp;
                        finalul = j;
                    }
                }
            }
        }
    }
    fout << maximul << " " << initialul << " " << finalul;
    return 0;
}