답안 #160094

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
160094 2019-10-26T02:29:40 Z Nordway Detecting Molecules (IOI16_molecules) C++14
0 / 100
2 ms 504 KB
#include <bits/stdc++.h>
#define x first
#define y second
#define pb push_back
#define mp make_pair
#define up_b upper_bound
#define low_b lower_bound
#define sz(x) (int)x.size()
#define all(v) v.begin(),v.end()
#define nl '\n'

#define boost ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
typedef pair<ll,ll> pll;

const ll INF=1e18;
const int inf=1e9;
const ld eps=1e-7;
const ld pi=acos(-1);
const int dx[8]={0,0 ,1,-1,1,1,-1,-1};
const int dy[8]={1,-1,0,0,1,-1,1,-1};
const int mod1=998244353;
const int mod2=1e9+7;
const int N=1e4+1;

pii a[N];

vector<int> find_subset(int l,int u,vector<int>w){
  int n=0;
  for(int i=0;i<sz(w);i++){
    if(w[i]>u)continue;
    n++;
    a[n].x=w[i];
    a[n].y=i;
  }
  vector<vector<bool>> dp;
  for(int i=0;i<=n+1;i++){
    for(int j=0;j<=u;j++){
      dp[i].pb(0);
    }
  }
  dp[0][0]=1;
  for(int i=1;i<=n;i++){
    for(int j=0;j<=u;j++){
      if(j>=a[i].x)dp[i][j]=dp[i][j]|dp[i-1][j-a[i].x];
      dp[i][j]=dp[i][j]|dp[i-1][j];
    }
  }
  int val=-1;
  for(int i=l;i<=u;i++){
    if(dp[n][i]){
      val=i;
      break;
    }
  }
  vector<int>ans;
  if(val>0){
    while(val>0){
      if(dp[n-1][val-a[n].x]){
        ans.pb(a[n].y);
        val-=a[n].x;
        n--;
      }
      else if(dp[n-1][val]){
        n--;
      }
    }
  }
  return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -