結果
| 問題 | No.15 カタログショッピング |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-11 22:49:45 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 679 bytes |
| 記録 | |
| コンパイル時間 | 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 |
ソースコード
#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';
}
}