func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3e5 + 5;   int n, x[2], need[N][2];   pair<int, int> p[N];   int main() {     ios::sync_with_stdio(false);     cin >> n >> x[0] >> x[1];     for (int i = 0; i < n; i++) {       int c;       cin >> c;       p[i] = {c, i};     }     sort(p, p + n);     for (int i = 0; i < n; i++)       for (int j = 0; j < 2; j++) {         int c = p[i].first;         need[i][j] = (x[j] + c - 1) / c;       }     for (int i = n - 1; i >= 0; i--) {       if (i + need[i][0] < n && need[i][0] + need[i + need[i][0]][1] <= n - i) {         vector<int> a, b;         for (int j = i; j < i + need[i][0]; j++) a.push_back(p[j].second);         for (int j = i + need[i][0]; j < i + need[i][0] + need[i + need[i][0]][1];              j++)           b.push_back(p[j].second);         cout <<  Yes n ;         cout << a.size() <<     << b.size() <<   n ;         for (int x : a) cout << x + 1 <<    ;         cout <<   n ;         for (int x : b) cout << x + 1 <<    ;         cout <<   n ;         return 0;       }       if (i + need[i][1] < n && need[i][1] + need[i + need[i][1]][0] <= n - i) {         vector<int> a, b;         for (int j = i; j < i + need[i][1]; j++) b.push_back(p[j].second);         for (int j = i + need[i][1]; j < i + need[i][1] + need[i + need[i][1]][0];              j++)           a.push_back(p[j].second);         cout <<  Yes n ;         cout << a.size() <<     << b.size() <<   n ;         for (int x : a) cout << x + 1 <<    ;         cout <<   n ;         for (int x : b) cout << x + 1 <<    ;         cout <<   n ;         return 0;       }     }     cout <<  No n ;     return 0;   }   