답안 #886700

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
886700 2023-12-12T16:58:36 Z vjudge1 San (COCI17_san) C++17
48 / 120
62 ms 448 KB
#ifndef Local
    #pragma GCC optimize("O3,unroll-loops")
    const int lim=10e5+100;
#else
    const int lim=2e3+100;
#endif

#include "bits/stdc++.h"
using namespace std;

#define int int64_t
#define pb push_back

const int mod=1e9+7;
using pii=pair<int,int>;

inline void solve(){
    int n,k;
    cin>>n>>k;
    pii a[n];
    for(int i=0;i<n;i++){
        cin>>a[i].first>>a[i].second;
    }
    int ans=0;
    for(int m=1;m<(1<<n);m++){
        int past=-1,cur=0;
        for(int i=0;i<n;i++){
            if(!(m&(1<<i)))continue;
            if(!(~past)||a[past].first<=a[i].first){
                cur+=a[i].second;
                past=i;
            }else{
                goto nextt;
            }
        }
        if(k<=cur){
            //cerr<<"passed "<<(bitset<4>(m))<<" "<<cur<<"\n";
            ans++;
            continue;
        }
        nextt:;
        //cerr<<"failed "<<(bitset<4>(m))<<"\n";
    }
    cout<<ans<<"\n";
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
#ifdef Local  
    freopen(".in","r",stdin);
    freopen(".out","w",stdout);
#else
    //freopen("grass.in","r",stdin);
    //freopen("grass.out","w",stdout);
#endif
    int t=1;
    //cin>>t;
    while (t--)
    {
        solve();
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 62 ms 348 KB Output is correct
2 Correct 11 ms 448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -