답안 #262670

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
262670 2020-08-13T06:46:26 Z anubhavdhar Ice Hockey World Championship (CEOI15_bobek) C++14
100 / 100
583 ms 8896 KB
#include<bits/stdc++.h>

#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define ff first 
#define ss second
#define vi vector<int>
#define vl vector<ll>
#define vii vector<pii>
#define vll vector<pll>
#define FOR(i,N) for(i=0;i<(N);++i)
#define FORe(i,N) for(i=1;i<=(N);++i)
#define FORr(i,a,b) for(i=(a);i<(b);++i)
#define FORrev(i,N) for(i=(N);i>=0;--i)
#define F0R(i,N) for(int i=0;i<(N);++i)
#define F0Re(i,N) for(int i=1;i<=(N);++i)
#define F0Rr(i,a,b) for(ll i=(a);i<(b);++i)
#define F0Rrev(i,N) for(int i=(N);i>=0;--i)
#define all(v) (v).begin(),(v).end()
#define dbgLine cerr<<" LINE : "<<__LINE__<<"\n"
#define ldd long double

using namespace std;

const int Alp = 26;
const int __PRECISION = 9;
const int inf = 1e9 + 8;

const ldd PI = acos(-1);
const ldd EPS = 1e-7;

const ll MOD = 1e9 + 7;
const ll MAXN = 2e5 + 5;
const ll ROOTN = 320;
const ll LOGN = 18;
const ll INF = 1e18 + 1022;

int N;
ll ans, M, A[41];

vl V;

ll search(ll cost)
{
	if(cost > M)
		return 0;
	int mid, lo = 0, hi = V.size();
	while(hi > lo + 1)
	{
		mid = (lo + hi)/2;
		if(V[mid] <= M - cost)
			lo = mid;
		else
			hi = mid;
	}
	return hi;
}

inline void dbg()
{
	for(ll pp : V)
		cerr<<pp<<' ';
	cerr<<'\n';
}

signed main()
{

	
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	ll tmp = 0;
	ans = 0;
	cin>>N>>M;
	F0R(i, N)
		cin>>A[i];

	F0R(mask, (1<<(N/2)))
	{
		tmp = 0;
		F0R(i, N/2)
			if((1<<i) & mask)
				tmp += A[i];
		V.pb(tmp);
	}

	// dbg();
	sort(all(V));

	F0R(mask, (1<<(N - N/2)))
	{
		tmp = 0;
		F0R(i,N - N/2)
			if((1<<i) & mask)
				tmp += A[i + N/2];
		ans += search(tmp);
	}

	cout<<ans<<'\n';
	
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 512 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 41 ms 1024 KB Output is correct
2 Correct 114 ms 2552 KB Output is correct
3 Correct 583 ms 8676 KB Output is correct
4 Correct 108 ms 2552 KB Output is correct
5 Correct 19 ms 1024 KB Output is correct
6 Correct 8 ms 768 KB Output is correct
7 Correct 15 ms 1024 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 51 ms 1532 KB Output is correct
2 Correct 38 ms 1024 KB Output is correct
3 Correct 230 ms 4628 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 11 ms 768 KB Output is correct
6 Correct 15 ms 1024 KB Output is correct
7 Correct 14 ms 1024 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 79 ms 1532 KB Output is correct
2 Correct 197 ms 2552 KB Output is correct
3 Correct 174 ms 2552 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 115 ms 2552 KB Output is correct
6 Correct 285 ms 8676 KB Output is correct
7 Correct 76 ms 2552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 371 ms 4596 KB Output is correct
2 Correct 33 ms 1024 KB Output is correct
3 Correct 11 ms 768 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 9 ms 768 KB Output is correct
6 Correct 199 ms 4596 KB Output is correct
7 Correct 14 ms 1028 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 39 ms 1024 KB Output is correct
2 Correct 104 ms 2552 KB Output is correct
3 Correct 11 ms 768 KB Output is correct
4 Correct 11 ms 768 KB Output is correct
5 Correct 138 ms 2552 KB Output is correct
6 Correct 21 ms 1024 KB Output is correct
7 Correct 241 ms 8676 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 431 ms 8676 KB Output is correct
2 Correct 37 ms 1152 KB Output is correct
3 Correct 12 ms 768 KB Output is correct
4 Correct 577 ms 8896 KB Output is correct
5 Correct 170 ms 4596 KB Output is correct
6 Correct 16 ms 1024 KB Output is correct
7 Correct 28 ms 1532 KB Output is correct