Submission #59666990


Source Code Expand

#include <bits/stdc++.h>
#include<atcoder/all>
#define rep(i,n) for(int i=0;i<(n);i++)
using namespace std;
using namespace atcoder;
#define all(a) a.begin(),a.end()
typedef long long ll;
typedef pair<ll,ll> P;
constexpr ll mod=998244353;
typedef modint1000000007 mi;

ll a[45];

vector<ll>val1[22],val2[22];

int main(){
    ll n,k,p;
    cin>>n>>k>>p;
    rep(i,n)cin>>a[i];
    for(int i=0;i<(1<<(n/2));i++){
        int pc=0;
        ll val=0;
        for(int j=0;j<n/2;j++){
            if(i&(1<<j)){
                pc++;
                val+=a[j];
            }
        }
        val1[pc].push_back(val);
    }
    for(int i=0;i<(1<<(n-n/2));i++){
        int pc=0;
        ll val=0;
        for(int j=0;j<n-n/2;j++){
            if(i&(1<<j)){
                pc++;
                val+=a[j+n/2];
            }
        }
        val2[pc].push_back(val);
    }
    rep(i,21){
        sort(all(val1[i]));
        sort(all(val2[i]));
    }

    ll ans=0;
    for(int i=0;i<=20;i++){
        int nk=k-i;
        if(0<=nk&&nk<=21){
            for(auto e:val1[i]){
                ans+=(upper_bound(all(val2[nk]),p-e)-val2[nk].begin());
            }
        }
    }
    cout<<ans<<endl;
}

Submission Info

Submission Time
Task 051 - Typical Shop(★5)
User Rho17
Language C++ 20 (gcc 12.2)
Score 5
Code Size 1247 Byte
Status AC
Exec Time 265 ms
Memory 23596 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 5 / 5
Status
AC × 3
AC × 39
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 10_random_small_00.txt, 10_random_small_01.txt, 11_random_medium_00.txt, 11_random_medium_01.txt, 12_random_large_00.txt, 12_random_large_01.txt, 13_random_max_00.txt, 13_random_max_01.txt, 13_random_max_02.txt, 20_unique_small_00.txt, 20_unique_small_01.txt, 21_unique_medium_00.txt, 21_unique_medium_01.txt, 22_unique_large_00.txt, 22_unique_large_01.txt, 23_unique_max_00.txt, 23_unique_max_01.txt, 23_unique_max_02.txt, 30_all_small_00.txt, 30_all_small_01.txt, 31_all_medium_00.txt, 31_all_medium_01.txt, 32_all_large_00.txt, 32_all_large_01.txt, 33_all_max_00.txt, 33_all_max_01.txt, 33_all_max_02.txt, 40_adjust_small_00.txt, 40_adjust_small_01.txt, 41_adjust_medium_00.txt, 41_adjust_medium_01.txt, 42_adjust_large_00.txt, 42_adjust_large_01.txt, 43_adjust_max_00.txt, 43_adjust_max_01.txt, 43_adjust_max_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3528 KiB
00_sample_01.txt AC 1 ms 3520 KiB
00_sample_02.txt AC 190 ms 23592 KiB
10_random_small_00.txt AC 1 ms 3448 KiB
10_random_small_01.txt AC 1 ms 3720 KiB
11_random_medium_00.txt AC 1 ms 3580 KiB
11_random_medium_01.txt AC 1 ms 3644 KiB
12_random_large_00.txt AC 1 ms 3552 KiB
12_random_large_01.txt AC 59 ms 8224 KiB
13_random_max_00.txt AC 251 ms 23444 KiB
13_random_max_01.txt AC 262 ms 23520 KiB
13_random_max_02.txt AC 265 ms 23532 KiB
20_unique_small_00.txt AC 1 ms 3528 KiB
20_unique_small_01.txt AC 1 ms 3444 KiB
21_unique_medium_00.txt AC 1 ms 3528 KiB
21_unique_medium_01.txt AC 1 ms 3576 KiB
22_unique_large_00.txt AC 1 ms 3620 KiB
22_unique_large_01.txt AC 61 ms 8224 KiB
23_unique_max_00.txt AC 262 ms 23596 KiB
23_unique_max_01.txt AC 258 ms 23524 KiB
23_unique_max_02.txt AC 249 ms 23528 KiB
30_all_small_00.txt AC 1 ms 3580 KiB
30_all_small_01.txt AC 1 ms 3512 KiB
31_all_medium_00.txt AC 1 ms 3584 KiB
31_all_medium_01.txt AC 1 ms 3536 KiB
32_all_large_00.txt AC 1 ms 3624 KiB
32_all_large_01.txt AC 11 ms 4272 KiB
33_all_max_00.txt AC 249 ms 23536 KiB
33_all_max_01.txt AC 247 ms 23444 KiB
33_all_max_02.txt AC 250 ms 23524 KiB
40_adjust_small_00.txt AC 1 ms 3568 KiB
40_adjust_small_01.txt AC 1 ms 3636 KiB
41_adjust_medium_00.txt AC 1 ms 3552 KiB
41_adjust_medium_01.txt AC 1 ms 3576 KiB
42_adjust_large_00.txt AC 8 ms 4008 KiB
42_adjust_large_01.txt AC 29 ms 5792 KiB
43_adjust_max_00.txt AC 249 ms 23592 KiB
43_adjust_max_01.txt AC 247 ms 23440 KiB
43_adjust_max_02.txt AC 247 ms 23536 KiB