Submission #156596

#TimeUsernameProblemLanguageResultExecution timeMemory
156596InfiniteJestDetecting Molecules (IOI16_molecules)C++14
9 / 100
2 ms380 KiB
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
#include <math.h>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;

ifstream in("input.txt");
ofstream out("output.txt");

typedef long long ll;

int n;
int ls,rs;
vector<int> v;
int res[1000001];
pair<int,int> p[1000001];

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
  n=w.size();
  int s=-1;
  int d=n-1;
  ll sum=0;
  bool flag=0;
  vector<int> sol;
  for(int i=0;i<n;i++){
    p[i].fi=w[i];
    p[i].se=i;
  }
  sort(p,p+n);
  while(s<n){
    if(sum>u)break;
    while((sum<l||sum>u)&&d>s){
      sum+=p[d].fi;
      d--;
    }
    d++;
    if(sum>=l&&sum<=u){
      flag=1;
      break;
    }
    sum-=p[d].fi;
    s++;
    sum+=p[s].fi;

  }
  if(flag){
    for(int i=0;i<=s;i++)sol.pb(p[i].se);
    for(int i=n-1;i>=d;i--)sol.pb(p[i].se);
    return sol;
  }
  return vector<int>();

}
#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...