Submission #1141355

#TimeUsernameProblemLanguageResultExecution timeMemory
1141355harry_tm_18Detecting Molecules (IOI16_molecules)C++20
9 / 100
0 ms328 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long

vector<int> find_subset(int l, int u, vector<int> w) {
    int n = w.size();
    vector<pair<int, int>> a;

    for (int i = 0; i < n; ++i) {
        a.emplace_back(w[i], i);
    }
    sort(a.begin(), a.end());

    vector<int> ans;
    ll prefixSum = 0;

    for (int i = 0; i < n; ++i) {
        prefixSum += a[i].first;

        if (prefixSum > u) break;

        if (prefixSum >= l) {
            for (int j = 0; j <= i; ++j) {
                ans.push_back(a[j].second);
            }
            return ans;
        }

        ll suffixSum = 0;
        for (int j = n - 1; j > i; --j) {
            suffixSum += a[j].first;

            ll totalSum = prefixSum + suffixSum;
            if (totalSum >= l && totalSum <= u) {
                for (int k = 0; k <= i; ++k) {
                    ans.push_back(a[k].second);
                }
                for (int k = j; k < n; ++k) {
                    ans.push_back(a[k].second);
                }
                return ans;
            }
        }
    }

    return ans;
}

Compilation message (stderr)

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...