結果
| 問題 | No.3531 Erase Pair |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-02 16:59:56 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,490 bytes |
| 記録 | |
| コンパイル時間 | 2,688 ms |
| コンパイル使用メモリ | 345,152 KB |
| 実行使用メモリ | 7,976 KB |
| 最終ジャッジ日時 | 2026-05-04 20:56:35 |
| 合計ジャッジ時間 | 10,636 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | WA * 50 |
ソースコード
// 嘘解法
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll , ll>;
using vl = vector<ll> ; //1D
using vvl = vector<vl> ;//2D
using vvvl = vector<vvl> ;//3D
using vp = vector<pll> ; //1D
using vvp = vector<vp> ;//2D
using vvvp = vector<vvp> ;//3D
using vi = vector<int> ; //1D
using vvi = vector<vi> ;//2D
using vvvi = vector<vvi> ;//3D
using vb = vector<bool> ; //1D
using vvb = vector<vb> ;//2D
using vvvb = vector<vvb> ;//3D
using vs = vector<string> ; //1D
using vvs = vector<vs> ;//2D
using vvvs = vector<vvs> ;//3D
const ll INF = 2e18 ;
const ll MOD = 998244353;
#define rep(i,a,b) for(ll i=(ll)a; i<(ll)b; i++)
#define rrep(i,a,b) for(ll i=(ll)b-1; i>=(ll)a; i--)
#define all(vec1) (vec1).begin(), (vec1).end()
#define rall(vec1) (vec1).rbegin(), (vec1).rend()
#define yn(b,ex) if(1){if(b)cout << "Yes" << endl;else cout << "No" << endl ;if(ex)return 0;}
#define debug(var) cerr << #var << " : " << var << endl;
//fastio
struct FastIO {
FastIO() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
}
} fastio;
//あまり(負の数対応)
template<typename T>
T ovr(T a,T b){
T ret=a%b;
if(ret<0)ret+=b;
return ret;
}
template<typename T>
bool chmax(T &a, T b) {
if (a < b) {
a = b;
return 1;
}
return 0;
}
template<typename T>
bool chmin(T &a, T b) {
if (a > b) {
a = b;
return 1;
}
return 0;
}
template <typename T>
void in(vector<T> &A) {
for(auto&&a:A) cin >> a;
}
template <typename T, typename S>
void in2(vector<T> &A, vector<S> &B) {
assert(A.size() == B.size());
for (size_t i = 0; i < A.size() ; i ++ ) {
cin >> A[i] >> B[i];
}
}
/////////main///////
int main() {
int T; cin >> T;
std::random_device seed_gen;
std::mt19937 engine(seed_gen());
while (T--) {
int N; cin >> N;
vi A(N); in(A);
bool ok = false;
rep(i,0,10) {
unordered_multiset<int> st(all(A));
auto B = A;
shuffle(all(B), engine);
while (B.size() >= 2) {
ll a = B[B.size() - 1], b = B[B.size() - 2];
if (st.find(a + b) == st.end()) {
B.pop_back();
B.pop_back();
st.erase(st.find(a));
st.erase(st.find(b));
}
else {
break;
}
}
if (B.size() <= 1) {ok = true; break;}
}
if (ok) cout << "Yes" << endl;
else cout << "No" << endl;
}
}