結果
問題 |
No.2779 Don't make Pair
|
ユーザー |
|
提出日時 | 2024-06-07 23:22:34 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,058 bytes |
コンパイル時間 | 1,872 ms |
コンパイル使用メモリ | 120,848 KB |
実行使用メモリ | 8,576 KB |
最終ジャッジ日時 | 2024-12-26 10:31:41 |
合計ジャッジ時間 | 4,443 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 21 WA * 3 |
ソースコード
#include <iostream> #include <vector> #include <cmath> #include <unordered_map> // #include <C++/core/io/output.hpp> int main() { int n; std::cin >> n; std::vector<int> a(n), id; std::unordered_map<int, int> cnt; for(auto &e: a) { std::cin >> e; cnt[e]++; } for(int i = 0; i < n; ++i) { if(cnt[a[i]] > 1) { id.emplace_back(i); } } // dump(id); const int m = std::ssize(id); if(m == 0) { std::cout << n - 1 << '\n'; for(int i = 1; i < n; ++i) { std::cout << i << " \n"[i + 1 == n]; } return 0; } const int l = id[(m + 1) / 2 - 1], r = id[m / 2]; // dump(l, r, a[l], a[r]); if(m > 2 && [=]{ bool ng = false; for(int i = 0; ++i < m;) { ng |= a[id[i - 1]] == a[id[i]]; } return ng; }()) { std::cout << "0\n\n"; } else { std::cout << r - l << '\n'; for(int i = l; ++i <= r;) { std::cout << i << " \n"[i == r]; } } }