제출 #1290063

#제출 시각아이디문제언어결과실행 시간메모리
1290063BlockOGHiring (IOI09_hiring)C++20
7 / 100
224 ms13376 KiB
#include <bits/stdc++.h> // meeeooowwwww mrrowwww :3 // go play vivid/stasis!! now!!!! https://vividstasis.gay #define fo(i, a, b) for (auto i = (a); i < (b); i++) #define of(i, a, b) for (auto i = (b); i-- > (a);) #define f first #define s second #define pb push_back #define lb lower_bound #define ub upper_bound #define be(a) a.begin(), a.end() using namespace std; int ____init = []{ ios::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); return 0; }(); pair<long long, pair<pair<int, int>, int>> a[500000]; int main() { int n; long long w; cin >> n >> w; fo(i, 0, n) cin >> a[i].s.f.f >> a[i].s.f.s, a[i].f = w * a[i].s.f.s / a[i].s.f.f, a[i].s.s = i; sort(a, a + n); long long mit = 2, mib = 1; int l = 0, r = 0; long long qsum = 0; for (int i = 0, j = 0; i < n;) { qsum += a[i].s.f.s; while (qsum > a[j].f) qsum -= a[j++].s.f.s; i++; if (i - j > r - l || i - j == r - l && qsum * mib < mit * a[j].f) { mit = qsum, mib = a[j].f; l = j, r = i; } } cout << r - l << endl; fo(i, l, r) cout << a[i].s.s + 1 << endl; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...