Submission #575372

#TimeUsernameProblemLanguageResultExecution timeMemory
575372UzoufA Difficult(y) Choice (BOI21_books)C++14
0 / 100
3 ms592 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) { vector<int> v(N); for (int i=0;i<N;i++) { v[i]=skim(i+1); } long long na=A*2; int a=-1,b=-1,c=-1; for (int l=0;l<N;l++) { for (int r=l+2;r<N;r++) { long long need=na-(v[l]+v[r]); int ll=l+1,rr=r-1; int mid=upper_bound(v.begin()+ll,v.begin()+rr+1,need)-v.begin(); mid--; //cout<<a<<' '<<r<<' '<<mid<<endl; if (mid>rr || mid<ll) continue; long long chk=v[mid]+v[l]+v[r]; if (chk>=A && chk<=na) { a=v[l]; b=v[mid]; c=v[r]; 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...