Cod sursa(job #1992318)

Utilizator richieYRichie Yeung richieY Data 20 iunie 2017 08:27:07
Problema Xor Max Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

int main() {
    int N, tmp, maxXOR, currXOR, start, end, maxStart, maxEnd;
    
    ifstream fin("xormax.in");

    fin >> N;
    
    int list[N];
    
    for(int i = 0; i < N; i++) {
        fin >> tmp;
        list[i] = tmp;
    }
    
    currXOR = 0;
    maxXOR = 0;
    
    start = 0;
    end = 0;
    
    maxStart = 0;
    maxEnd = 0;
    
    for(int i = 0; i < N; i++) {
        
        end = i;
        
        if(list[i] > (currXOR ^ list[i])) {
            start = i;
        }
        
        currXOR = max(currXOR ^ list[i], list[i]);
        
        if(currXOR > maxXOR) {
            maxStart = start;
            maxEnd = end;
        }
        
        maxXOR = max(currXOR, maxXOR);
    }
    
    ofstream fout("xormax.out");

    fout << maxXOR << " " << (maxStart+1) << " " << (maxEnd+1);
    
    return 0;
}