Submission #489730

#TimeUsernameProblemLanguageResultExecution timeMemory
489730EvangDetecting Molecules (IOI16_molecules)C++17
31 / 100
1087 ms40932 KiB
#include <bits/stdc++.h> using namespace std; #ifdef _DEBUG #define dout(x) clog << "Line " << __LINE__ << ": " << #x << "=" << (x) << el #else #define dout(x) #endif #define mp(a, b) make_pair(a, b) #define mt(args...) make_tuple(args) #define pb(x) push_back(x) #define eb(args...) emplace_back(args) #define ff first #define ss second #define DIE exit(0) template<typename T> using vc = vector<T>; template<typename T> using uset = unordered_set<T>; template<typename A, typename B> using umap = unordered_map<A, B>; template<typename T, typename Comp> using pq = std::priority_queue<T, vc<T>, Comp>; template<typename T> using maxpq = pq<T, less<T>>; template<typename T> using minpq = pq<T, greater<T>>; using db = double; using ld = long double; using ll = long long; using ull = unsigned long long; using pi = pair<int, int>; using pll = pair<ll, ll>; using vi = vc<int>; using vll = vc<ll>; using vpi = vc<pi>; using vpll = vc<pll>; using str = string; constexpr char el = '\n'; constexpr char sp = ' '; constexpr int inf = 0x3f3f3f3f; constexpr ll llinf = 0x3f3f3f3f3f3f3f3fLL; #include "molecules.h" vi find_subset(int l, int u, vi w){ int sum = 0; for(int x: w) sum += x; vc<bool> pos(sum+1); vi a(sum+1); pos[0] = 1; for(int i = 0; i < w.size(); ++i) for(int j = sum - w[i]; j >= 0; --j) if(pos[j]&&!pos[j+w[i]]){ pos[j+w[i]] = 1; a[j+w[i]] = i; if(l <= j + w[i] && j + w[i] <= u){ vi ans; int cur = j + w[i]; while(cur>0){ ans.pb(a[cur]); cur -= w[a[cur]]; } return ans; } } return vi(); }

Compilation message (stderr)

molecules.cpp: In function 'vi find_subset(int, int, vi)':
molecules.cpp:57:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |  for(int i = 0; i < w.size(); ++i)
      |                 ~~^~~~~~~~~~
#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...