제출 #319918

#제출 시각아이디문제언어결과실행 시간메모리
319918gustasonSan (COCI17_san)C++14
48 / 120
1084 ms364 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
ll need, ans = 0;
int h[41], c[41];
void go(ll earned, int curr) {
    //cout << earned << " " << curr << "\n";
    if (earned >= need) {
        ans++;
    }
    for(int i = curr+1; i < n; i++) {
        if (h[curr] > h[i]) continue;
        go(earned + c[i], i);
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> need;
    for(int i = 0; i < n; i++) {
        cin >> h[i] >> c[i];
    }

    for(int i = 0; i < n; i++) {
        go(c[i], i);
    }
    cout << ans << "\n";
    return 0;
}
//~ check for overflows
#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...