結果
問題 | No.2806 Cornflake Man |
ユーザー | tobbie |
提出日時 | 2024-08-01 21:09:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,430 ms / 2,000 ms |
コード長 | 713 bytes |
コンパイル時間 | 1,896 ms |
コンパイル使用メモリ | 176,900 KB |
実行使用メモリ | 70,656 KB |
最終ジャッジ日時 | 2024-09-26 15:24:06 |
合計ジャッジ時間 | 10,338 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (int)n; i++) int main() { int n, m; cin >> n >> m; map<int, int> mp; rep(i, n) { int a; cin >> a; mp[a]++; } vector<int> b; bool ans = true; for (map<int, int>::iterator it = mp.begin(); it != mp.end(); it++) { int key = it->first; if (key == 0) continue; if (mp[key] == 1) { b.push_back(key); for (int i = 1; i * key <= m; i++) { if (mp[i * key] == 0) ans = false; else mp[i * key]++; } } } if (ans) { cout << (int)b.size() << endl; for (int i : b) cout << i << " "; cout << endl; } else cout << -1 << endl; return 0; }