제출 #1198347

#제출 시각아이디문제언어결과실행 시간메모리
1198347grafffDetecting Molecules (IOI16_molecules)C++20
컴파일 에러
0 ms0 KiB
#ifdef molecules.h
#include "molecules.h"
#endif

#include <algorithm>

using namespace std;

vector <int> find_subset(int l, int u, vector <int> w){
    int n = w.size(), res = 0;
    map <int, int> mp;
    set <int> st = {0};
    mp[0] = -1;
    bool flag = false;
    for(int i = 0; i < n; i++){
        for(int j : st){
            int x = j + w[i];
            if(mp[x] == 0 && w[0] != x){
                mp[x] = i;
            }
            if(l <= x && x <= u){
                flag = true;
                res = x;
                break;
            }
        }
        if(flag){
            break;
        }
        st = {};
        for(auto &[x, y] : mp){
            st.insert(x);
        }
    }
    vector <int> ans;
    int x = mp[res];
    while(x >= 0){
        ans.push_back(x);
        res -= w[x];
        x = mp[res];
    }
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

molecules.cpp:1:17: warning: extra tokens at end of #ifdef directive
    1 | #ifdef molecules.h
      |                 ^
molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:11:5: error: 'map' was not declared in this scope
   11 |     map <int, int> mp;
      |     ^~~
molecules.cpp:6:1: note: 'std::map' is defined in header '<map>'; did you forget to '#include <map>'?
    5 | #include <algorithm>
  +++ |+#include <map>
    6 | 
molecules.cpp:11:10: error: expected primary-expression before 'int'
   11 |     map <int, int> mp;
      |          ^~~
molecules.cpp:12:5: error: 'set' was not declared in this scope
   12 |     set <int> st = {0};
      |     ^~~
molecules.cpp:6:1: note: 'std::set' is defined in header '<set>'; did you forget to '#include <set>'?
    5 | #include <algorithm>
  +++ |+#include <set>
    6 | 
molecules.cpp:12:10: error: expected primary-expression before 'int'
   12 |     set <int> st = {0};
      |          ^~~
molecules.cpp:13:5: error: 'mp' was not declared in this scope
   13 |     mp[0] = -1;
      |     ^~
molecules.cpp:16:21: error: 'st' was not declared in this scope; did you mean 'std'?
   16 |         for(int j : st){
      |                     ^~
      |                     std
molecules.cpp:30:9: error: 'st' was not declared in this scope; did you mean 'std'?
   30 |         st = {};
      |         ^~
      |         std
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
      |         ^~~~