답안 #88647

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
88647 2018-12-07T08:36:12 Z Nucleist Detecting Molecules (IOI16_molecules) C++14
컴파일 오류
0 ms 0 KB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> find_subset(int l, int u, std::vector<int> w) {
    int k = w.size();
    vector <int> kk;
    vector<int>ff;
    bool n =false;
    for(int i=0;i<w.size();i++)
    {if(w[i]==0&&min(l,u)==0)
            {ff.push_back(i);
            n=true;
            }}
    int f=l;
    int compteur=0;
    l=u;
    int n = k;
    if(l==0&&u==0)
        n=true;
    if(f==0&&f<u)
        f++;
    int sum = max(f,l);
    bool subset[k+1][max(f,l)+1];
    for (int i = 0; i <= n; i++)
      subset[i][0] = true;
    for (int i = 1; i <= sum; i++)
      subset[0][i] = false;
    for (int i = 1; i <= n; i++)
     {
       for (int j = 1; j <= sum; j++)
       {
         if(j<w[i-1])
         subset[i][j] = subset[i-1][j];
         if (j >= w[i-1])
           subset[i][j] = subset[i-1][j] ||
                                 subset[i - 1][j-w[i-1]];
       }
     }
     bool ka = false;
     for (int j = min(l,f); j <= max(l,f); j++)
     {
         {int kaa=j;
          if(subset[n][j])
          {
              for(int i = n;i>=1;i--)
              {

                  if(subset[i-1][kaa-w[i-1]])
                  {
                    kk.push_back(w[i-1]);
                    kaa -= w[i-1];
                    compteur++;
                    ka=true;
                    if(kaa==0)
                        break;
                  }
              }
          }}
     }
    if(n)
        return ff;
    return kk;
}

Compilation message

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:9:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<w.size();i++)
                 ~^~~~~~~~~
molecules.cpp:17:9: error: conflicting declaration 'int n'
     int n = k;
         ^
molecules.cpp:8:10: note: previous declaration as 'bool n'
     bool n =false;
          ^