結果
| 問題 |
No.2126 MEX Game
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-12-20 00:53:45 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,933 bytes |
| コンパイル時間 | 2,449 ms |
| コンパイル使用メモリ | 258,568 KB |
| 最終ジャッジ日時 | 2025-02-09 17:16:53 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 WA * 2 |
コンパイルメッセージ
In file included from /usr/include/c++/13/istream:41,
from /usr/include/c++/13/sstream:40,
from /usr/include/c++/13/complex:45,
from /usr/include/c++/13/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:127,
from /usr/include/x86_64-linux-gnu/c++/13/bits/extc++.h:32,
from main.cpp:3:
In member function ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char; _Traits = std::char_traits<char>]’,
inlined from ‘int main()’ at main.cpp:80:13:
/usr/include/c++/13/ostream:204:25: warning: ‘mex’ may be used uninitialized [-Wmaybe-uninitialized]
204 | { return _M_insert(__n); }
| ~~~~~~~~~^~~~~
main.cpp: In function ‘int main()’:
main.cpp:53:9: note: ‘mex’ was declared here
53 | int mex;
| ^~~
ソースコード
#pragma region Macros
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
// using namespace __gnu_cxx;
#define TO_STRING(var) # var
#define pb emplace_back
#define int ll
#define endl '\n'
using ll = long long;
using ld = long double;
const ld PI = acos(-1);
const ld EPS = 1e-10;
const int INF = 1 << 30;
const ll INFL = 1LL << 61;
// const int MOD = 998244353;
const int MOD = 1000000007;
int ceil(int x, int y) {return (x > 0 ? (x + y - 1) / y : x / y);}
int POW(int x, int y) {
if (y != (int)(y) or y < 0 or x != 0 && x != 1 && y > 64) {cout << "Error" << endl;return 0;}
if (y == 0) return 1;
if (y % 2 == 0) return POW(x * x, y / 2);
return x * POW(x, y - 1);
}
__attribute__((constructor))
void constructor() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(15);
}
#pragma endregion
signed main() {
int N;
cin >> N;
vector<int> A(N);
unordered_map<int,int> mp;
for (int i = 0; i < N; i++) {
cin >> A[i];
mp[A[i]]++;
}
sort(A.begin(), A.end());
if (N == 1) {cout << 0 << endl; return 0;}
int mex;
bool flag = false;
for (int i = 0; i <= 1e5; i++) {
if (mp[i] >= 3) flag = true;
if (mp[i] == 0) {
mex = i;
break;
} else if (mp[i] == 1) {
if (i == *max_element(A.begin(),A.end()) && flag == false) {
mex = i;
break;
}
i++;
while (i != *max_element(A.begin(),A.end()) + 1) {
if (flag && mp[i] <= 1) {
mex = i;
break;
} else if (mp[i] <= 2) {
mex = i;
break;
}
i++;
}
if (i == *max_element(A.begin(),A.end()) + 1) mex = i;
break;
}
}
cout << mex << endl;
}