Submission #156632

#TimeUsernameProblemLanguageResultExecution timeMemory
156632InfiniteJestDetecting Molecules (IOI16_molecules)C++14
100 / 100
66 ms10364 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[100001]; pair<ll,int> p[200001]; ll pref[200001]; ll suff[200001]; std::vector<int> find_subset(int l, int u, std::vector<int> w) { int 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); ll spa=0; ll spb=0; int ind=n; for(int i=0;i<n;i++){ spa+=p[i].fi; spb+=p[n-1-i].fi; pref[i]=spa; suff[n-1-i]=spb; if(spb>u&&ind==n)ind=n-i; } if(suff[ind]>=l&&suff[ind]<=u){ flag=1; s=-1; d=ind; } for(int i=0;i<n;i++){ while(ind<n&&suff[ind]+pref[i]>u)ind++; if(pref[i]+suff[ind]>=l&&pref[i]+suff[ind]<=u){ flag=1; s=i; d=ind; } } 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; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:30:6: warning: unused variable 'sum' [-Wunused-variable]
   ll sum=0;
      ^~~
#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...