답안 #1070928

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1070928 2024-08-22T20:58:41 Z codexistent Ice Hockey World Championship (CEOI15_bobek) C++14
100 / 100
278 ms 22448 KB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MAXN 45
#define FOR(i, a, b) for(ll i = a; i <= b; i++)

ll n, c, m[MAXN], r = 1;

int main(){
    cin >> n >> c;
    FOR(i, 1, n) cin >> m[i];
    sort(m + 1, m + 1 + n);

    pair<ll, ll> a = {1, (1 + n) / 2}, b = {(1 + n) / 2 + 1, n};

    // solve first half
    ll mska = pow(2, a.second - a.first + 1);
    vector<ll> msa;
    FOR(msk, 1, mska - 1){
        ll s = 0;
        FOR(i, a.first, a.second){
            if(msk & (1 << (i - a.first))){
                s += m[i];
            }
        }

        if(s > c) continue;
        r++;
        msa.push_back(s);
    }
    sort(begin(msa), end(msa));

    // solve second half
    ll mskb = pow(2, b.second - b.first + 1);
    vector<ll> msb;
    FOR(msk, 1, mskb - 1){
        ll s = 0;
        FOR(i, b.first, b.second){
            if(msk & (1 << (i - b.first))){
                s += m[i];
            }
        }

        if(s > c) continue;
        r++;
        msb.push_back(s);
    }
    sort(begin(msb), end(msb));

    // combine both halves
    ll na = (ll)msa.size(), nb = (ll)msb.size();

    ll ptr = na - 1;
    FOR(i, 0, nb - 1){
        while(ptr >= 0 && msa[ptr] + msb[i] > c) {
            ptr--;
        }

        r += ptr + 1;
    }

    cout << r << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 2256 KB Output is correct
2 Correct 65 ms 5580 KB Output is correct
3 Correct 260 ms 22444 KB Output is correct
4 Correct 65 ms 5312 KB Output is correct
5 Correct 12 ms 1488 KB Output is correct
6 Correct 7 ms 984 KB Output is correct
7 Correct 8 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 2764 KB Output is correct
2 Correct 23 ms 2256 KB Output is correct
3 Correct 115 ms 11960 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 6 ms 984 KB Output is correct
6 Correct 15 ms 1604 KB Output is correct
7 Correct 8 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 45 ms 4272 KB Output is correct
2 Correct 101 ms 8708 KB Output is correct
3 Correct 95 ms 8628 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 70 ms 8464 KB Output is correct
6 Correct 236 ms 20912 KB Output is correct
7 Correct 48 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 202 ms 16692 KB Output is correct
2 Correct 24 ms 2356 KB Output is correct
3 Correct 7 ms 980 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 6 ms 984 KB Output is correct
6 Correct 198 ms 16616 KB Output is correct
7 Correct 8 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 2352 KB Output is correct
2 Correct 66 ms 5436 KB Output is correct
3 Correct 8 ms 980 KB Output is correct
4 Correct 7 ms 984 KB Output is correct
5 Correct 72 ms 8256 KB Output is correct
6 Correct 25 ms 2256 KB Output is correct
7 Correct 124 ms 408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 278 ms 22448 KB Output is correct
2 Correct 23 ms 2252 KB Output is correct
3 Correct 8 ms 984 KB Output is correct
4 Correct 266 ms 21004 KB Output is correct
5 Correct 98 ms 12476 KB Output is correct
6 Correct 16 ms 1492 KB Output is correct
7 Correct 16 ms 436 KB Output is correct