Submission #729004

#TimeUsernameProblemLanguageResultExecution timeMemory
729004groguDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms304 KiB
#include "molecules.h" #include <bits/stdc++.h> #define endl '\n' #define here cerr<<"=========================================\n" #define dbg(x) cerr<<#x<<": "<<x<<endl; #define ll long long #define pb push_back #define popb pop_back #define all(a_) a_.begin(),a_.end() #define pll pair<ll,ll> #define sc second #define fi first using namespace std; #define maxn 200005 ll n; pll a[maxn]; ll last[maxn]; ll l,r; vector<int> find_subset(int L, int R, vector<int> w) { n = w.size(); l = L; r = R; for(ll i = 1;i<=n;i++){ a[i].fi = w[i-1]; a[i].sc = i-1; if(a[i].fi>=l&&a[i].sc<=r) return {i-1}; } sort(a+1,a+1+n); reverse(a+1,a+1+n); set<pll> s; s.insert({0,0}); for(ll i = 1;i<=n;i++){ ll x = a[i].fi; auto it = s.lower_bound({l-x,0}); if(it==s.begin()) continue; it--; ll cur = it->fi + x; last[i]= it->sc; s.insert({cur,i}); //ll l = i+1,r = n,mid,rez = -1; //cerr<<"i: "<<i<< " "<<cur<<endl; for(ll j = i+1;j<=n;j++){ if(cur+a[j].fi<=r&&cur+a[j].fi>=l){ vector<int> ans; ans.pb(a[j].sc); ll k = i; while(k){ ans.pb(a[k].sc); k = last[k]; } sort(all(ans)); return ans; } } } return {}; } /** 4 15 17 6 8 8 7 4 14 15 5 5 6 6 4 10 20 15 17 16 18 **/

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:25:45: warning: narrowing conversion of '(i - 1)' from 'long long int' to 'int' [-Wnarrowing]
   25 |         if(a[i].fi>=l&&a[i].sc<=r) return {i-1};
      |                                            ~^~
molecules.cpp:25:45: warning: narrowing conversion of '(i - 1)' from 'long long int' to 'int' [-Wnarrowing]
#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...