This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef vector<vi> vvi;
typedef pair<ll,ll> pii;
typedef vector<pii> vii;
typedef vector<vii> vvii;
void debug(auto v){
for (auto x:v) cerr << x << ' ';
cerr << '\n';
}
//void debug(vii v){
// for (auto x:v) cerr << x.first <<' '<< x.second << '\n';
// cerr << '\n';
//}
vector<int> find_subset(int l, int u, vector<int> w) {
//cerr<<1;
int n=w.size();
vii v(n);
//cerr<<4;
for (int i=0;i<n;i++) v[i]=pii{w[i],i};
//cerr<<3;
sort(v.begin(),v.end());
vii pref(n+1);
pref[0]=pii{0,0};
//cerr<<2;
for (int i=1;i<=n;i++){
pref[i].first=pref[i-1].first+v[i-1].first;
pref[i].second=pref[i-1].second+v[n-i].first;
}
//cerr<<0;
//debug(pref);
for (int i=1;i<=n;i++){
if ((l>=pref[i].first and l<=pref[i].second) or (u>=pref[i].first and u<=pref[i].second) or (l<=pref[i].first and u>=pref[i].second)){
//cerr<<i;
vi sol(i);
for (int j=0;j<i;j++) sol[j]=j;
ll suma=pref[i].first;
int counter=0;
while(suma<u){
//debug(sol);
//cerr << suma << '\n';
suma-=v[counter].first;
suma+=v[n-counter-1].first;
sol[counter]=n-counter-1;
counter++;
}
//cerr<<0;
//debug(sol);
//cerr << suma << '\n';
//debug(sol);
//cerr<<0;
//cerr << i << '\n';
//debug(sol);
//cerr << i << '\n';
for (int j=0;j<i;j++) sol[j]=v[sol[j]].second;
//debug(sol);
//cerr<<1;
//cerr<<0;
sort(sol.begin(),sol.end());
//cerr<<2;
vector<int> solu(i);
//cerr<<1;
for (int j=0;j<i;j++) solu[j]=sol[j];
//cerr<<3;
//debug(solu);
return solu;
}
}
return vector<int>(0);
}
Compilation message (stderr)
molecules.cpp:13:12: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
13 | void debug(auto v){
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |