Submission #565046

#TimeUsernameProblemLanguageResultExecution timeMemory
565046MadokaMagicaFanDetecting Molecules (IOI16_molecules)C++14
Compilation error
0 ms0 KiB
#include "bits/stdc++.h"

using namespace std;

using ll = long long;
const ll inf = 1e9;
const int md1 = 1e9+7;

#define all(v)                      v.begin(), v.end()
#define rall(v)                     v.rbegin(), v.rend()
#define sz(v)                       ((int)v.size())

#define forn(i,n)                   for(int i = 0; i < n; ++i)
#define forbe(i,b,e)                for(int i = b; i < e; ++i)

#define pb                          push_back

#define pry                         puts("YES")
#define prn                         puts("NO")
#define endl                        '\n'

#define fst                         first
#define scn                         second

int
find_subset(int *l)
{
    return 0;
}

int
find_subset(int l, int r, int* w, int n, int* result)
{
    map<int,int> p;
    set<ll> vals;
    vals.insert(0);
    p[0] = -1;

    vector<ll> ws;
    ll ans = -1;
    for (int i = 0; i < n; ++i) {
        ws.clear();

        for (auto u : vals)
            ws.pb(u+w[i]);

        for (auto u : ws) {
            if (vals.find(u) == vals.end())
                p[u] = i;
            vals.insert(u);

            if (l <= u && r >= u){
                ans = u;
                i = n;
                break;
            }
        }
    }

    if (ans == -1)
        return 0;

    int cnt = 0;

    while (p[ans] != -1) {
        result[cnt++] = p[ans]+1;
        ans = ans - w[p[ans]];
    }

    return cnt;
}

#ifdef ONPC
void
solve()
{

    const int N = 1e4;
    int n, l, r;

    cin >> n >> l >> r;
    int w[N];
    for (int i = 0; i < n; ++i)
        cin >> w[i];
    int result[N];

    int ans = find_subset(l,r,w,n, result);

    cout << ans << endl;
    return;
    for (int i = 0; i < ans; ++i) {
        cout << w[result[i]-1] << ' ';
    }
    cout << endl;
}

int32_t
main()
{
    freopen("in", "r", stdin);
    int t = 1;
    cin >> t;
    while(t--)
        solve();
}
#endif

Compilation message (stderr)

/usr/bin/ld: /tmp/ccrSg3et.o: in function `main':
grader.cpp:(.text.startup+0x18d): undefined reference to `find_subset(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status