Submission #561528

#TimeUsernameProblemLanguageResultExecution timeMemory
561528Koosha_mvDetecting Molecules (IOI16_molecules)C++14
100 / 100
57 ms7088 KiB
#include <bits/stdc++.h> using namespace std; #define dbgv(v) cout<<#v<<" = "; f(i,0,v.size()) cout<<v[i]<<" "; cout<<endl #define dbga(a,x,y) cout<<#a<<" = "; f(i,x,y) cout<<a[i]<<" "; cout<<endl #define erorp(x) cout<<#x<<"={"<<x.F<<" , "<<x.S<<"}"<<endl #define eror(x) cout<<#x<<'='<<(x)<<endl #define f_(i,a,b) for(int i=a;i>=b;i--) #define f(i,a,b) for(int i=a;i<b;i++) #define nb(x) __builtin_popcount(x) #define all(v) v.begin(),v.end() #define bit(n,k) (((n)>>(k))&1) #define Add(x,y) x=(x+y)%mod #define maxm(a,b) a=max(a,b) #define minm(a,b) a=min(a,b) #define lst(x) x[x.size()-1] #define sz(x) int(x.size()) #define mp make_pair #define ll long long #define pb push_back #define S second #define F first #include "molecules.h" const int N=1e6+99; int n,t,L,R; pair<int,int> a[N]; ll ps[N]; vector<int> find_subset(int L,int R,vector<int> w) { n=w.size(); f(i,1,n+1) a[i]={w[i-1],i-1}; sort(a+1,a+n+1); f(i,1,n+1) ps[i]=ps[i-1]+a[i].F; int len=-1; f(i,1,n+1){ if(ps[i]>R || ps[n]-ps[n-i]<L) continue ; len=i; } if(len==-1) return {}; int l=-1,r=len; while(l+1<r){ int mid=(l+r)>>1; if(ps[mid]+ps[n]-ps[n-(len-mid)]<L) r=mid; else l=mid; } int m=l,p=r,sum=ps[r]+ps[n]-ps[n-(len-r)]; while(sum<L) sum-=a[p++].F,sum+=a[p].F; vector<int> ans; f(i,1,m+1) ans.pb(a[i].S); f(i,n+1-(len-r),n+1) ans.pb(a[i].S); ans.pb(a[p].S); return ans; } /* int32_t main(){ ios:: sync_with_stdio(0), cin.tie(0), cout.tie(0); int n,L,R; vector<int> vec,ans; cin>>n>>L>>R; f(i,0,n){ int x; cin>>x; vec.pb(x); } ans=find_subset(L,R,vec); dbgv(ans); }*/
#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...