結果
問題 | No.190 Dry Wet Moist |
ユーザー |
|
提出日時 | 2019-11-18 13:19:21 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 527 ms / 2,000 ms |
コード長 | 1,218 bytes |
コンパイル時間 | 1,219 ms |
コンパイル使用メモリ | 101,920 KB |
実行使用メモリ | 23,168 KB |
最終ジャッジ日時 | 2024-11-14 21:51:08 |
合計ジャッジ時間 | 8,042 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
#include <iostream>#include <algorithm>#include <iomanip>#include <map>#include <set>#include <queue>#include <stack>#include <numeric>#include <bitset>#include <cmath>#include <limits>static const int MOD = 1000000007;using ll = long long;using u32 = uint32_t;using namespace std;template<class T> constexpr T INF = ::numeric_limits<T>::max() / 32 * 15 + 208;int main() {int n;cin >> n;multiset<int> s, s2;vector<int> v(2*n);for (auto &&i : v) scanf("%d", &i), s.insert(i), s2.insert(-i);int wet = 0;while(!s.empty()){int x = *s.begin(); s.erase(s.begin());auto t = s.upper_bound(-x);if(t != s.end()){wet++; s.erase(t);}}int dry = 0;while(!s2.empty()){int x = *s2.begin(); s2.erase(s2.begin());auto t = s2.upper_bound(-x);if(t != s2.end()){dry++; s2.erase(t);}}s.clear();for (auto &&j : v) s.insert(j);int moist = 0;while(!s.empty()){int x = *s.begin(); s.erase(s.begin());if(s.count(-x)){moist++; s.erase(s.find(-x));}}printf("%d %d %d\n", dry, wet, moist);return 0;}