Submission #575394

#TimeUsernameProblemLanguageResultExecution timeMemory
575394UzoufA Difficult(y) Choice (BOI21_books)C++14
0 / 100
6 ms688 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #include"books.h" using namespace std; //using namespace __gnu_pbds; //#define ll long long //#define endl "\n" //int mod=1e9+7; //const int N=2e5+5; //template<class x> //using ordered_multiset = tree<x, null_type,less_equal<x>, rb_tree_tag,tree_order_statistics_node_update>; void solve(int N, int K, long long A, int S) { multiset<int> st; int v[N]; map<int,int> mp; for (int i=0;i<N;i++) { v[i]=skim(i+1); st.insert(v[i]); mp[v[i]]=i+1; } int a=-1,b=-1,c=-1; for (int l=0;l<N;l++) { for (int r=l+1;r<N;r++) { long long need=A-(v[l]+v[r]+1); auto mid=st.upper_bound(need); if (mid==st.end()) continue; if (*mid==v[l]) mid=st.upper_bound(*mid); if (mid==st.end()) continue; if (*mid==v[r]) mid=st.upper_bound(*mid); if (mid==st.end()) continue; //cout<<v[l]<<' '<<*mid<<' '<<v[r]<<endl; long long chk=*mid+v[l]+v[r]; if (chk>=A && chk<=2*A) { a=l+1; b=mp[*mid]; c=r+1; break; } } } if (a==-1) impossible(); vector<int> ans; ans.push_back(a); ans.push_back(b); ans.push_back(c); //cout<<a<<' '<<b<<' '<<c; answer(ans); return; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...