Submission #1117495

#TimeUsernameProblemLanguageResultExecution timeMemory
1117495vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
13 / 100
3045 ms18084 KiB
// Problem: E - Hedgehog Daniyar and Algorithms // Contest: Virtual Judge - Selection // URL: https://vjudge.net/contest/673521#problem/E // Memory Limit: 256 MB // Time Limit: 3000 ms // // Powered by CP Editor (https://cpeditor.org) /********************************** //deque,priority_queue * author: NurkhatKrutoi2009 * created: Just now * P.S: tourist ne katai **********************************/ #include <bits/stdc++.h> /* for ordered_set <int> st; --> st.order_of_key(j) #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; //Delete the other one template<class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; template<class T> using ordered_multiset = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>; *//* #include <algorithm> #include <iostream> #include <cmath> *//* #pragma GCC optimize("fast-loops") #pragma comment(linker, "/stack:200000000") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native,avx2,fma") #pragma GCC optimization ("unroll-loops") */ #define int long long #define FREOPEN freopen(" .in", "r", stdin); freopen(" .out", "w", stdout); #define sonic ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define FORR( i, x, n, d ) for( int i = x; i >= n; i -= d ) #define FOR( i, x, n, d ) for( int i = x; i <= n; i += d ) #define all(x) (x).begin(), (x).end() #define pss pair<string,string> #define nextp next_permutation #define pii pair<int,int> #define priq priority_queue #define mii map<int,int> #define sz(x) (x).size() #define stirng string #define str to_string #define rev reverse #define pb push_back #define ll long long #define endl '\n' #define S second #define F first const int Pi=3.1415926535; const int MOD=1e9+7; const int N=1e5+123; const int lol=63; const int inf=1e9+123; using namespace std; int tc=1; int n,m,l,r,k,mx=-inf; void code( ){ int n,m; cin>>n>>m; int s[n+1]; int b[n+1]; FOR(i,1,n,1){cin>>s[i];mx=max(mx,s[i]);} int l=1; b[1]=1; FOR(i,2,n,1){ if(s[i]<s[i-1])l=i; b[i]=l; } while(m--){ int l,r,k; cin>>l>>r>>k; if(k<mx){ if(b[r]==b[l])cout<<"1\n"; else cout<<"0\n"; continue;} bool ok=1; set <int,greater<int>> st; st.insert(s[r]); st.insert(0); bool was=0; FORR(i,r-1,l,1){ int x=-1; if( s[i]!=0 )x=*st.upper_bound(s[i]); st.insert(s[i]); if(s[i]==0)was=1; if( x==0 && !was )continue; if( x+s[i]>k ){ok=0;break;} }cout<<(ok ? "1\n" : "0\n"); } }signed main(){sonic //FREOPEN //cin>>tc; while(tc--){ code(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...