Cod sursa(job #3354565)

Utilizator prares06Papacioc Rares-Ioan prares06 Data 18 mai 2026 22:53:35
Problema Xor Max Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
// So a not optimal solution in O(n^2) is keeping prefix xor sums

#include <fstream>
#include <vector>

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

int N;
std::vector<int> v;

int main() {
    fin >> N;

    v.resize(N);
    for (int& x : v) {
        fin >> x;
    }

    std::vector<int> prefix_sum = v;

    for (int i = 1; i < N; ++i) {
        prefix_sum[i] = prefix_sum[i - 1] ^ v[i];
    }

    int max = -1, st = -1, dr = -1;

    for (int i = 0; i < N; ++i) {
        for (int j = i; j < N; ++j) {
            int curr = prefix_sum[j] ^ (i == 0 ? 0 : prefix_sum[i - 1]);
            if (curr > max) {
                max = curr;
                st = i;
                dr = j;
            }
            else if(curr == max) {
                if (dr > j){
                    st = i;
                    dr = j;
                }
                else if(dr == j && dr - st > j - i){
                    st = i;
                    dr = j;
                }
            }
        }
    }

    fout << max << ' ' << st + 1 << ' ' << dr + 1;
}