結果

問題 No.1017 Reiwa Sequence
ユーザー GGanari
提出日時 2024-05-24 10:17:23
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 133 ms / 2,000 ms
コード長 855 bytes
コンパイル時間 2,163 ms
コンパイル使用メモリ 195,424 KB
最終ジャッジ日時 2025-02-21 16:33:12
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#define INF 1000000001
#define MOD 1000000007
#define long long long
#define all(x) x.begin(),x.end()
using namespace std;

int main()
{
	ios_base::sync_with_stdio(0); 
    cin.tie(0);
	
	int n;
	cin >> n;

	vector<int> arr(n);
	for(int i = 0; i<n; i++)
		cin >> arr[i];

	int l = min(22,n);
	vector<int> res(n);
	vector<int> vis(1<<22); 
	for(int i = 0; i<(1<<l); i++)
	{
		int hap = 0;
		for(int j = 0; j<l; j++)
		{
			if(i&(1<<j))
			{
				hap+=arr[j];
			}
		}
		if(vis[hap])
		{
			for(int j = 0; j<l; j++)
			{
				if(i&(1<<j))
					res[j]--;
				if(vis[hap]&(1<<j))
					res[j]++;
			}
			cout << "Yes\n";
			for(int k = 0; k<n; k++)
				cout << res[k]*arr[k] << " ";
			cout << "\n";
			return 0;
		}
		for(int j = 0; j<l; j++)
		{
			if(i&(1<<j))
			{
				vis[hap]|=1<<j;
			}
		}
	}
	cout << "No\n";


	
    return 0;
}
0