?
# | Author | Problem | Lang | Verdict | Time | Memory | Sent | Judged | |
---|---|---|---|---|---|---|---|---|---|
92467452 |
Practice: abhishekumar_1401 |
1330B - 40 | C++14 (GCC 6-32) | Wrong answer on test 2 | 31 ms | 144 KB | 2020-09-11 06:41:23 | 2020-09-11 06:41:23 |
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define ld long double #define mod 1000000007 vector<ll> res; void F1(vector<ll> &vec, ll max_element) { int f = 0, n = vec.size(); for(int i = 0; i < max_element; i++) { if(vec[i] > max_element) { f = 1; break; } } if(f == 0) { set<ll> s; for(int i = 0; i < max_element; i++) s.insert(vec[i]); if(s.size() == max_element) { ll x = n - max_element; for(int i = max_element; i < n; i++) { if(vec[i] > x) { f = 1; break; } } if(f == 0) { s.clear(); for(int i = max_element; i < n; i++) s.insert(vec[i]); if(s.size() == x) { res.push_back(max_element); res.push_back(x); } } } } } void F2(vector<ll> &vec, ll max_element) { int f = 0, n = vec.size(); for(int i = n-1; i >= n - max_element; i--) { if(vec[i] > max_element) { f = 1; break; } } if(f == 0) { set<ll> s; for(int i = n-1; i >= n - max_element; i--) s.insert(vec[i]); if(s.size() == max_element) { ll x = n - max_element; for(int i = n- max_element - 1; i >= 0; i--) { if(vec[i] > x) { f = 1; break; } } if(f == 0) { s.clear(); for(int i = n-max_element-1; i >= 0; i--) s.insert(vec[i]); if(s.size() == x) { res.push_back(x); res.push_back(max_element); } } } } } int32_t main() { ios::sync_with_stdio(0), cin.tie(0); ll t = 1; cin >> t; while(t--) { ll n; cin >> n; vector<ll> vec(n); ll max_element = 0; for(int i = 0; i < n; i++) { cin >> vec[i]; max_element = max(vec[i], max_element); } F1(vec, max_element); F2(vec, max_element); cout<<res.size()/2<<"\n"; for(int i = 0; i < res.size(); i=i+2) { cout<<res[i]<<" "<<res[i+1]<<"\n"; } res.clear(); } return 0; }
?
?
?
?