Submission #1320001

#TimeUsernameProblemLanguageResultExecution timeMemory
1320001ThanhsDetecting Molecules (IOI16_molecules)C++20
9 / 100
1 ms332 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; #define name "TENBAI" #define fi first #define se second #define endl '\n' #define setmin(x, y) x = min((x), (y)) #define setmax(x, y) x = max((x), (y)) #define sqr(x) ((x) * (x)) #define all(x) x.begin(), x.end() mt19937 hdp(chrono::high_resolution_clock::now().time_since_epoch().count()); int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);} vector<pair<int, int>> W; vector<int> sus(vector<int>& v) { vector<int> res; for (int t : v) res.push_back(W[t].se); sort(all(res)); return res; } vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); W.resize(n); for (int i = 0; i < n; i++) W[i] = {w[i], i}; sort(all(W)); for (int i = 0; i < n; i++) w[i] = W[i].fi; vector<long long> p(n, w[0]); for (int i = 1; i < n; i++) p[i] = p[i - 1] + w[i]; for (int i = 1; i <= n; i++) { if (p[i - 1] >= l && p[i - 1] <= u) { vector<int> res(i); iota(all(res), 0); return sus(res); } if (i == n) break; if (p.back() - p[n - i - 1] >= l && p.back() - p[n - i - 1] <= u) { vector<int> res(i); iota(all(res), n - i); return sus(res); } if (p[i - 1] < l && p.back() - p[n - i - 1] > u) { vector<int> res(i); iota(all(res), 0); int cur = p[i - 1], c = n - 1; for (int j = i - 1; ; j--) { if (cur + w[c] - w[j] < l) { cur += w[c] - w[j]; res[j] = c--; } while (cur < l) cur += w[res[j] + 1] - w[res[j]], res[j]++; return sus(res); } } } return vector<int>(0); }

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