답안 #867261

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
867261 2023-10-28T03:39:19 Z UmairAhmadMirza Ice Hockey World Championship (CEOI15_bobek) C++14
40 / 100
233 ms 8940 KB
//In the name of Allah the most beneficent, the most merciful.
#include <bits/stdc++.h>

using namespace std;

// #pragma GCC optimize("Ofast,unroll-loops") 
// #pragma GCC target("avx,avx2,avx512,fma") 
#define int long long
#define ar array
#define ll long long
#define ld long double
#define sza(x) ((int)x.size())
#define all(a) (a).begin(), (a).end()

#define PI 3.1415926535897932384626433832795l 
const int N = 42;
const ll MOD = 1e9 + 7;
const ll INF = 1e9;
const ld EPS = 1e-9;                                
// -------------------------<RNG>------------------------- 
// RANDOM NUMBER GENERATOR
mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count());  
#define SHUF(v) shuffle(all(v), RNG); 
// Use mt19937_64 for 64 bit random numbers.
//--------------------------------------------------------
//int defined as long long
int arr[N];
int n,m;
int hn;
vector<int> lft;
int sm_left(int val){
	int sm=0;
	for(int i=0;i<(n/2);i++)
		if((1<<i)&(val))
			sm+=arr[i];
	return sm;
}
int cnt(int val){
	val=val<<(n/2);
	int sm=0;
	for(int i=n/2;i<n;i++)
		if((1<<i)&(val))
			sm+=arr[i];
	auto p=upper_bound(lft.begin(),lft.end(),m-sm);
	return p-lft.begin();
}
void solve() {
    //int defined as long long
    cin>>n>>m;
    for(int i=0;i<n;i++)
    	cin>>arr[i];
    sort(arr,arr+n);
    int val=0;
    while(val<(1<<(n/2))){
    	lft.push_back(sm_left(val));
    	val++;
    }
    sort(lft.begin(),lft.end());
    val=0;
    int ans=0;
    hn=(n/2)+(n%2);
    while(val<(1<<hn)){
    	ans+=cnt(val);
    	val++;
    }
    cout<<ans<<endl;
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    // freopen("billboard.in", "r", stdin);
	// freopen("billboard.out", "w", stdout);
    int tc = 1;
    // cin >> tc;
    for (int t = 1; t <= tc; t++) {
        // cout << "Case #" << t << ": ";
        solve();
    }
}
# 결과 실행 시간 메모리 Grader output
1 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 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 0 ms 348 KB Output is correct
5 Correct 1 ms 600 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 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 Incorrect 24 ms 988 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 30 ms 1748 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 51 ms 1496 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 157 ms 5328 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 21 ms 992 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 233 ms 8940 KB Output isn't correct
2 Halted 0 ms 0 KB -