Submission #1353893

#TimeUsernameProblemLanguageResultExecution timeMemory
1353893temporary1Detecting Molecules (IOI16_molecules)C++17
9 / 100
0 ms344 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

#define f first
#define s second
#define ll long long
#define pii pair<int,int>
#define pli pair<ll,int>
#define pll pair<ll,ll>
#define tiii tuple<int,int,int>
#define tiiii tuple<int,int,int,int>
#define pb push_back
#define eb emplace_back
#define emp emplace
#define mkp make_pair
#define mkt make_tuple
#define vctr vector
#define arr array
#define all(x) x.begin(), x.end()
#define amin(a,b) a = min(a,b)
#define amax(a,b) a = max(a,b)
#define brick(x) cout << #x << " = " << (x) << " | "
#define dbg(x) cout << #x << " = " << (x) << '\n'
#define vdbg(a) cout << #a << " = "; for(auto _x : a)cout << _x << ' '; cout << '\n'
#define adbg(a,n) cout << #a << " = "; for(int _i = 1; _i <= n; ++_i)cout << a[_i] << ' '; cout << '\n'
#define adbg0(a,n) cout << #a << " = "; for(int _i = 0; _i < n; ++_i)cout << a[_i] << ' '; cout << '\n'
mt19937 rng(static_cast<uint32_t>(chrono::steady_clock::now().time_since_epoch().count()));
int uid(int a, int b) { return uniform_int_distribution<int>(a,b)(rng); }
ll uld(ll a, ll b) { return uniform_int_distribution<ll>(a,b)(rng); }

const int MOD = 1e9+7; // 998244353;

int a[200005];
ll pf[200005];

vctr<int> find_subset(int L, int R, vctr<int> _w) {
    int n = _w.size();
    for (int i = 1; i <= n; ++i) {
        a[i] = _w[i-1];
    }
    sort(a+1,a+n+1);
    for (int i = 1; i <= n; ++i) {
        pf[i] = pf[i-1]+a[i];
    }
    int l = 1, r = n;
    while (l < r) {
        int m = l+(r-l)/2;
        ll cl = pf[m];
        ll cr = pf[n]-pf[n-m];
        if (cr < L) {
            l = m+1;
        } else {
            r = m;
        }
    }
    vctr<int> ans;
    for (int i = l; i <= n; ++i) {
        ll cur = pf[i]-pf[i-l];
        if (L <= cur && cur <= R) {
            for (int j = 1; j <= l; ++j) {
                ans.pb(i-j);
            }
            break;
        }
    }
    return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...