Submission #1155473

#TimeUsernameProblemLanguageResultExecution timeMemory
1155473ahmedesmatxXOR (IZhO12_xor)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
/*#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#pragma GCC target("avx,avx2,fma")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")*/
using namespace __gnu_pbds;
#define int long long
int dx[] = { 1,-1,0,0,-1,1,-1,1 };
int dy[] = { 0,0,1,-1,-1,1,1,-1 };
#define ordered_set tree<pair<int ,int>, null_type,less<pair<int ,int>>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
#define all(v) v.begin(), v.end()
#define rall(name)  name.rbegin(),name.rend()
#define ll long long
#define fx(n)  cout<<fixed<<setprecision(n);
#define cin(vec) for(auto& i : vec) cin >> i
const int mod = 1000000007;
#define cout(vec) for(auto& i : vec) cout << i <<" "
const double EBS = 1e-6, PI = 3.141592653589793;
#define V vector<int>
#define vv vector<vector<int>>
int tx[] = { -2, -2, 2,  2, 1,-1, 1, -1 };
int ty[] = { 1, -1, 1, -1, 2, 2, -2,-2 };
typedef priority_queue<int> pq_max;
typedef priority_queue<int,vector<int>, greater<int>> pq_min;
#define call_me_dady(arr , val) memset(arr, val, sizeof(arr));
void The_Great_ZEUS (){ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) ;}

//********************************Global Memory*************************


//********************************FUNCTIONS*****************************


//********************************MAIN**********************************
void zeus();
int32_t main()
{
    // freopen("mex.in", "r", stdin);
    The_Great_ZEUS();
    int t = 1 ;
   // cin>>t;
    for(int iIi = 1 ; iIi <= t ; iIi++)
    {
        //cout<<"Case "<<iIi<<": ";
        zeus();
        cout<<"\n";
    }
}
//********************************ZEUS**********************************
void zeus()
{
    int n , k ;
    cin>>n>>k;
    V v(n+2);
    for(int i =1 ; i <=n ; i ++)cin>>v[i] , v[i]^=v[i-1];
    int l =1 , r = n ;
    int sz , st ;
    auto valid = [&] (int md)
    {
        int l =1 , r = l + md -1 ;
        while (r<=n)
        {
            int x = v[r] ^ v[l-1];
            if(x>=k)return l ;
            l++ , r++;
        }
        return -1LL ;
    };
    while (l<=r)
    {
        int md = (l+r)/2;
        if(valid(md) !=-1 )sz = md , st = valid(md) , l = md+1;
        else r = md-1;
    }
    cout<<st<<" "<<sz ;
}

#Verdict Execution timeMemoryGrader output
Fetching results...