Submission #982433

#TimeUsernameProblemLanguageResultExecution timeMemory
982433MarwenElarbiDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms1116 KiB
#include<bits/stdc++.h> //#include "molecules.h" using namespace std; //#pragma GCC optimize("O3") //#pragma GCC optimize("unroll-loops") #define fi first #define se second #define ll long long #define pb push_back mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); std::vector<int> find_subset(int l, int u, std::vector<int> w){ pair<int,int> par[u+1]; int n=w.size(); bitset<500005> dp; for (int i = 0; i <= u; ++i) { par[i]={n,i}; } dp[0]=1; bool vis[u+1]; vis[0]=true; memset(vis,0,sizeof vis); bitset<500005> nabba; for (int i = 1; i <= n; ++i) { int cur=w[i-1]; nabba=(dp^(dp|(dp<<cur))); dp|=(dp<<cur); for (int j = nabba._Find_first(); j < nabba.size(); j=nabba._Find_next(j)) { par[j]={i-1,j-cur}; } /*for (int j = 1; j <= u; ++j) { if(dp[j]==1&&vis[j]==0){ par[j]={i-1,j-cur}; vis[j]=true; } }*/ } vector<int> ans; /*for (int i = 0; i <= u; ++i) { cout <<par[i].se<<" "; }cout <<endl;*/ for (int i = l; i <= u; ++i) { if(dp[i]){ while(i>0){ //cout <<i<<endl; ans.pb(par[i].fi); i=par[i].se; //break; } break; } } sort(ans.begin(),ans.end()); return ans; } /*int main() { #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int n, l, u; assert(3 == scanf("%d %d %d", &n, &l, &u)); std::vector<int> w(n); for (int i = 0; i < n; i++) assert(1 == scanf("%d", &w[i])); std::vector<int> result = find_subset(l, u, w); printf("%d\n", (int)result.size()); for (int i = 0; i < (int)result.size(); i++) printf("%d%c", result[i], " \n"[i == (int)result.size() - 1]); }*/

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:29:45: warning: comparison of integer expressions of different signedness: 'int' and 'std::size_t' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         for (int j = nabba._Find_first(); j < nabba.size(); j=nabba._Find_next(j))
      |                                           ~~^~~~~~~~~~~~~~
#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...