Cod sursa(job #2911968)

Utilizator papinub2Papa Valentin papinub2 Data 5 iulie 2022 23:02:19
Problema Xor Max Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <fstream>
#include <vector>

using namespace std;

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

int main()
{
    int n, maxim = -1, start, finish, length = 1;
    in >> n;

    vector<int> v(n + 5);

    for (int i = 1; i <= n; i++)
    {
        in >> v[i];
        if (v[i] > maxim)
        {
            maxim = v[i];
            start = i;
            finish = i;
        }
    }

    for (int i = 1; i < n; i++)
    {
        int rez = v[i];
        for (int j = i + 1; j <= n; j++)
        {
            rez = rez ^ v[j];
            if (rez > maxim)
            {
                maxim = rez;
                start = i;
                finish = j;
                length = j - i + 1;
            }

            else

            if (rez == maxim)
            {
                if (j < finish)
                {
                    start = i;
                    finish = j;
                    length = j - i + 1;
                }
                    else
                {
                     if (j == finish)
                        if (j - i + 1 < length)
                        {
                            start = i;
                            finish = j;
                            length = j - i + 1;
                        }
                }
            }
        }
    }

    out << maxim << ' ' << start << ' ' << finish;
    return 0;
}