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...