제출 #846378

#제출 시각아이디문제언어결과실행 시간메모리
846378vjudge1OGLEDALA (COI15_ogledala)C++14
22 / 100
242 ms54964 KiB
// Aber der schlimmste Fiend, dem du begegnen kannst, wirst du immer dir selber sein #include <bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx2,popcnt,lzcnt,abm,bmi,bmi2,fma,tune=native") #define fast_io ios_base::sync_with_stdio(false);cin.tie(NULL); #define int long long int #define ff first #define ss second #define pb push_back #define rev reverse #define all(x) x.begin(),x.end() #define acc accumulate #define sz size() #define MOD 1000000007 #define rall(x) x.rbegin(),x.rend() #define rep(i, x, n) for(int i = x; i < n; i++) using namespace std; const int N = 1e6 + 5; inline void solve(){ int n, m, q; cin >> n >> m >> q; int ans[min(n+1, 300005LL)]; priority_queue<pair<int, int> > pq; set<int> st; for(int i = 1; i <= m; i++){ int x; cin >> x; ans[i] = x; st.insert(x); } int l = 1; map<int, int> mp; for(int i : st){ while(mp[l]) l++; if(l < i) pq.push({i-l, l*-1}); l = i; mp[i] = 1; } l++; if(l < n) pq.push({n-l+1, l*-1}); int qq[q]; for(int i = 0; i < q; i++){ cin >> qq[i]; } for(int i = m+1; i <= min(n, 300005LL); i++){ int len = pq.top().ff, in = pq.top().ss*-1; pq.pop(); int mid = in + (len-1) / 2; if(in != mid){ pq.push({mid - in, in*-1}); } if(len != 1){ pq.push({in + len - 1 - mid, (mid+1)*-1}); } ans[i] = mid; } for(int i = 0; i < q; i++){ cout << ans[qq[i]] << endl; } } int32_t main(){ fast_io int t; t = 1; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...