結果

問題 No.1701 half price
ユーザー takumat
提出日時 2021-10-08 22:20:56
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,194 bytes
コンパイル時間 4,295 ms
コンパイル使用メモリ 252,104 KB
最終ジャッジ日時 2025-01-24 22:29:56
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 8 WA * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/all>

typedef unsigned long long ULLONG;
typedef long long LLONG;
static const LLONG MOD_NUM = 998244353LL;//1000000007LL;
static const LLONG INF_NUM = MOD_NUM * 20LL;
template<class _T> static void get(_T& a) {
	std::cin >> a;
}
template<class _T> static void get(_T& a, _T& b) {
	std::cin >> a >> b;
}
template<class _T> static void get(_T& a, _T& b, _T& c) {
	std::cin >> a >> b >> c;
}
template <class _T> static _T tp_abs(_T a) {
	if (a < (_T)0) {
		a *= (_T)-1;
	}
	return a;
}

static void task();

int main()
{
	task();
	fflush(stdout);
	return 0;
}

static void task()
{
	int N;
	LLONG W;
	get(N);
	get(W);

	std::vector<LLONG> ai(N);
	for (int i = 0; i < N; i++) {
		get(ai[i]);
	}

	LLONG ans = 0;
	for (int select = 1; select < (1 << N); select++) {
		std::vector<LLONG> vi;
		for (int bit = 0; bit < N; bit++) {
			if (select & (1 << bit)) {
				vi.push_back(ai[bit]);
			}
		}

		int cnt = vi.size();
		for (int i = 0; i <= cnt; i++) {
			LLONG ttl = 0;
			for (int j = 0; j < cnt; j++) {
				if (j == i) {
					ttl += vi[j] / 2LL;
				}
				else {
					ttl += vi[j];
				}
			}
			if (ttl == W) ans++;
		}
	}
	printf("%lld\n", ans);
}
0