Pagini recente » Cod sursa (job #165963) | Cod sursa (job #2227943) | Cod sursa (job #1997948) | salsa | Cod sursa (job #1159531)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("xormax.in");
ofstream out("xormax.out");
int main()
{
unsigned int n,i,j,soli,solj;
in>>n;
vector<int> v;
v.resize(n);
for(i=0;i<n;i++) in>>v.at(i);
int sol=v.at(0);
soli=0;solj=1;
vector<int> s;
s.resize(n);
s.at(n-1)=v.at(0);
for(i=n-2;i<n;i--)
{
s.at(i)=s.at(i+1)^v.at(n-i-1);
if(s.at(i)>sol)
{
sol=s.at(i);
soli=n-s.size()+1;
solj=s.size()-i-1;
}
}
while(s.size())
{
for(i=0;i<s.size()-1;i++)
{
s.at(i)^=s.at(s.size()-1);
if(s.at(i)>sol)
{
sol=s.at(i);
soli=n-s.size()+2;
solj=s.size()-i-2;
}
if(s.at(i)==sol)
if(solj>s.size()-i-2)
{
soli=n-s.size()+2;
solj=s.size()-i-2;
}
else
if(solj==s.size()-i-2&&soli+solj>n-i)
{
soli=n-s.size()+2;
solj=s.size()-i-2;
}
}
s.pop_back();
}
out<<sol<<" "<<soli<<" "<<solj+soli;
}