제출 #381352

#제출 시각아이디문제언어결과실행 시간메모리
381352AdiZer0San (COCI17_san)C++17
48 / 120
246 ms16876 KiB
#include <bits/stdc++.h>

#define pb push_back
#define whole(x) x.begin(), x.end()
#define sz(x) (int)x.size()

using namespace std;

typedef long long ll;
typedef long double ld;

const int N = (int)5e5 + 7;
const int INF = (int)1e9 + 7;
const ll linf = (ll)1e18 + 1;

int h[60], g[60];
map<ll, int> was;
int main() {
    ll k;
    int n; scanf ("%d %lld", &n, &k);
    for (int i = 0; i < n; ++i) scanf ("%d %d", h + i, g + i);
    ll ways = 0;
    for (int i = 0; i < (1 << n); ++i)  {
        ll gold = 0;
        int p = -1;
        ll cur = 0;
        for (int j = 0; j < n; ++j) { 
            if ((i >> j) & 1) { 
                if (p == -1) gold += g[j], p = j, cur = (cur + (1 << j));
                else { 
                    if (h[p] <= h[j]) gold += g[j], p = j, (cur = cur + (1 << j));
                }
            }
        }
        if (!was[cur] && gold >= k) { 
            was[cur] = 1;
            ++ways;
        }
    }
    printf ("%lld\n", ways);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

san.cpp: In function 'int main()':
san.cpp:20:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   20 |     int n; scanf ("%d %lld", &n, &k);
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~
san.cpp:21:39: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   21 |     for (int i = 0; i < n; ++i) scanf ("%d %d", h + i, g + i);
      |                                 ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...