Submission #1243072

#TimeUsernameProblemLanguageResultExecution timeMemory
1243072CirclingDetecting Molecules (IOI16_molecules)C++20
0 / 100
0 ms328 KiB
#include <iostream>
#include <iomanip>
#include <utility>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <cmath>
#include <cstdint>
#include "molecules.h"
using namespace std;


vector<int> find_subset(int l, int u, vector<int> w){
    vector<pair<int64_t, int>> arr;
    for (int i = 0; i < w.size(); i++) arr.push_back({w[i], i + 1});
    sort(arr.begin(), arr.end());
    int64_t prefsum = 0, sufsum = 0, len = 0, currsum;
    while (len < w.size() && sufsum < l){
        prefsum += arr[len].first;
        sufsum += arr[w.size() - 1 - len].first;
        len++;
    }
    if (len > w.size() || prefsum > u) return {};
    vector<int> indices, ans;
    for (int i = 0; i < len; i++) indices.push_back(i);
    currsum = prefsum;
    for (int i = 0; currsum < l; i++){
        currsum -= arr[indices[i]].first;
        indices[i] += w.size() - len;
        currsum += arr[indices[i]].first;
    }
    for (int i = 0; i < len; i++) ans.push_back(arr[indices[i]].second);
    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...