Submission #1262979

#TimeUsernameProblemLanguageResultExecution timeMemory
1262979silentloopDetecting Molecules (IOI16_molecules)C++20
31 / 100
193 ms131072 KiB
#include <bits/stdc++.h> #define ll long long #define sz(x) int(x.size()) #define fr first #define se second #define pb push_back #define mp make_pair #define all(x) x.begin(),x.end() using namespace std; vector<int>arm(vector<vector<vector<int>>>&dp,int j) { ll sig=j, pos=dp[j][0][1]; vector<int>ans; while(sig>=0) { if(dp[sig][pos][2]>=0) ans.pb(dp[sig][pos][2]); ll nS, nP; nS=dp[sig][pos][0]; nP=dp[sig][pos][1]; sig=nS; pos=nP; } return ans; } std::vector<int> find_subset(int l, int u, std::vector<int> w) { vector<int>ans; if(l>u) return ans; vector<vector<vector<int>>>dp(u+1); vector<bool>pos(u+1); vector<pair<ll,ll>>v; ll i, j; for(i=0; i<sz(w); i++) { v.pb({w[i],i}); } sort(all(v)); pos[0]=1; dp[0].pb({-1,-1,-1}); for(i=0; i<sz(v); i++) { ll x=v[i].fr; int nod=v[i].se; for(j=u; j>=x; j--) { if(pos[j-x]) { pos[j]=1; vector<int>p={j-x,sz(dp[j-x])-1,nod}; dp[j].pb(p); if(j>=l) return arm(dp,j); } } } return ans; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:54:32: warning: narrowing conversion of '(j - x)' from 'long long int' to 'int' [-Wnarrowing]
   54 |                 vector<int>p={j-x,sz(dp[j-x])-1,nod};
      |                               ~^~
molecules.cpp:54:32: warning: narrowing conversion of '(j - x)' from 'long long int' to 'int' [-Wnarrowing]
molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...