Submission #863602

#TimeUsernameProblemLanguageResultExecution timeMemory
863602phictusBank (IZhO14_bank)C++17
0 / 100
2 ms600 KiB
// Parsa Jokar 2023 https://github.com/phictus/ioi

#include <iostream>
#include <cstdint>

using namespace std;

constexpr int64_t maxn = 20;
int64_t n, m;
int64_t pa[maxn], b[maxn];
int64_t dp[1 << maxn];

int main()
{
	ios_base::sync_with_stdio(false);
	freopen("bank.in", "r", stdin);
	freopen("bank.out", "w", stdout);

	cin >> n >> m;
	cin >> pa[0];
	for (int64_t i = 1; i < n; i++)
	{
		cin >> pa[i];
		pa[i] += pa[i - 1];
	}
	for (int64_t i = 0; i < m; i++)
		cin >> b[i];

	dp[0] = -1;
	for (int64_t mask = 1; mask < (1 << m); mask++)
	{
		dp[mask] = -1;
		int64_t sum = 0;
		for (int64_t i = 0; i < m; i++)
		{
			if (((mask >> i) & 1) == 1)
			{
				dp[mask] = max(dp[mask], dp[mask - (1 << i)]);
				sum += b[i];
			}
		}

		if (sum == pa[dp[mask] + 1])
			dp[mask]++;
	}

	if (dp[(1 << m) - 1] == n - 1)
		cout << "YES\n";
	else
		cout << "NO\n";

	return (0 ^ 0);
}

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:16:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |  freopen("bank.in", "r", stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:17:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |  freopen("bank.out", "w", stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...