結果

問題 No.15 カタログショッピング
コンテスト
ユーザー id-ord
提出日時 2026-01-11 22:49:45
言語 C++23
(gcc 15.2.0 + boost 1.89.0)
結果
WA  
実行時間 -
コード長 679 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,837 ms
コンパイル使用メモリ 175,232 KB
実行使用メモリ 9,728 KB
最終ジャッジ日時 2026-01-11 22:49:48
合計ジャッジ時間 2,956 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 3 WA * 7
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <vector>
#include <map>
int main(){
	int64_t N,S;std::cin>>N>>S;std::vector<int64_t> P(N);for(auto& p:P)std::cin>>p;
	int l=N/2,r=N-l;
	std::multimap<int64_t,int> m1,m2;
	for(int i=0;i<(1<<l);i++){int64_t sum=0;for(int b=0;b<l;b++)if(i&(1<<b))sum+=P[b];m1.emplace(sum,i);}
	for(int i=0;i<(1<<r);i++){int64_t sum=0;for(int b=0;b<r;b++)if(i&(1<<b))sum+=P[l+b];m2.emplace(sum,i);}
	for(auto&& [k,v]:m1){
		auto [i1,i2]=m2.equal_range(S-k);
		bool some=false;
		for(;i1!=i2;i1++){
			some=true;
			for(int b=0;b<l;b++)if(v&(1<<b))std::cout<<b+1<<' ';
			for(int b=0;b<r;b++)if(i1->second&(1<<b))std::cout<<b+1+l<<' ';
		}
		if(some)std::cout<<'\n';
	}
}
0