Submission #1304297

#TimeUsernameProblemLanguageResultExecution timeMemory
1304297Ekber_EkberDetecting Molecules (IOI16_molecules)C++20
100 / 100
51 ms8728 KiB
#include "molecules.h" #include <bits/stdc++.h> #define int long long #define ff first #define ss second #define pb push_back #define all(v) v.begin(), v.end() using namespace std; vector<int32_t> find_subset(int32_t l, int32_t r, vector<int32_t> v) { int n = v.size(); vector <pair<int, int>> v1; for (int i = 0; i < n; i++) { v1.pb({v[i], i}); } sort(all(v1)); vector <int> id; for (int i = 0; i < n; i++) id.pb(v1[i].ss); sort(all(v)); vector <int> pr(all(v)); for (int i = 1; i < n; i++) pr[i] += pr[i-1]; for (int i = 0; i < n; i++) { // cout << endl << i << ": "; int a = i, b = n-1, ans=-1; while (a <= b) { int m = (a + b) / 2; int s = pr[m] - (i == 0 ? 0 : pr[i-1]); if (v[m] - v[i] > r - l) b = m - 1; if (s <= r) ans = m, a = m + 1; else b = m - 1; } if (ans == -1) continue; if (pr[ans] - (i == 0 ? 0 : pr[i-1]) >= l) { vector <int32_t> res; for (int j = i; j <= ans; j++) { res.pb(id[j]); } sort(all(res)); return res; } } vector <int32_t> null; return null; }

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