# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
297844 | 2020-09-12T04:51:40 Z | Dovran | Detecting Molecules (IOI16_molecules) | C++11 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define N 1000009 #define pii pair <int, int> #define ff first #define sz() size() #define ss second #define pb push_back #define ll long long using namespace std; int c[N], a[N], n; int ans[N]; int find_subset(int l, int r, vector<int> v){ n=v.sz(); c[0]=1; for(int i=0; i<n; i++){ for(int j=r; j>=0; j--) if(c[j]) c[j+v[i]]=1, a[j+v[i]]=i; } for(int i=l; i<=r; i++){ if(c[i]){ int x; int y=i, in=0; while(y>0) x=a[y], ans[in++]=x, y-=v[x]; break; } } return ans; }