제출 #969371

#제출 시각아이디문제언어결과실행 시간메모리
969371ReLiceDetecting Molecules (IOI16_molecules)C++14
100 / 100
40 ms10276 KiB
#include "molecules.h" #include <bits/stdc++.h> #define ll long long #define str string #define ins insert #define ld long double #define pb push_back #define pf push_front #define pof pop_front() #define pob pop_back() #define lb lower_bound #define ub upper_bound #define endl "\n" #define fr first #define sc second #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define sz size() #define vll vector<int> #define bc back() #define arr array #define pll vector<pair<ll,ll>> using namespace std;/* #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<ll, null_type,less_equal<ll>, rb_tree_tag,tree_order_statistics_node_update>*/ template<class S,class T> bool chmin(S &a,const T &b) { return a>b?(a=b)==b:false; } template<class S,class T> bool chmax(S &a,const T &b) { return a<b?(a=b)==b:false; } vector<int> find_subset(int L, int U, vector<int> W) { ll l=L,u=U; ll i,j; ll n=W.sz; ll sum=0; vll v; pll w; for(i=0;i<n;i++)w.pb({W[i],i}); sort(all(w)); if(w[0].fr>u)return v; ll x=n; for(i=0;i<n;i++){ if(sum+w[i].fr<l)sum+=w[i].fr; else { if(sum+w[i].fr<=u){ for(j=0;j<=i;j++){ v.pb(w[j].sc); } return v; } x=i; break; } } for(i=0;i<x;i++){ if(n-i-1<x)return v; sum-=w[i].fr; sum+=w[n-i-1].fr; if(sum>=l && sum<=u){ for(j=i+1;j<x;j++) v.pb(w[j].sc); for(j=0;j<=i;j++) v.pb(w[n-j-1].sc); return v; } } 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...