Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <time.h>
- //#include <random>
- //#ifndef _LOCAL
- //#pragma GCC optimize("-O3")
- //#pragma GCC optimize("Ofast")
- //#pragma GCC optimize("unroll-loops")
- //#endif
- #define sz(x) int(x.size())
- #define in(x) freopen(x, "r", stdin)
- #define out(x) freopen(x, "w", stdout)
- #define N 2 * 100500
- #define oo ll(1e16)
- #define pii pair <int, int>
- #define pll pair <ll, ll>
- #define ft first
- #define sd second
- #define pb push_back
- #define ppb pop_back
- #define el '\n'
- #define elf endl
- #define base ll(1e9 + 7)
- #define re return
- #define nins 4294967295
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- const int LOG = 20;
- //mt19937 rnd(0);
- int n, p[N], a[N], cur, kol, siz, m;
- vector <int> rs;
- void solve() {
- cin >> n;
- for (int i = 0; i < n; i++)
- cin >> a[i];
- for (int i = 0; i < n - 1; i++)
- p[i] = i + 1;
- p[n - 1] = 0;
- cin >> m;
- cur = 0;
- kol = 1;
- siz = n;
- while (siz > 1)
- if (kol + 1 == m) {
- kol = 1;
- p[cur] = p[p[cur]];
- siz--;
- cur = p[cur];
- } else kol++, cur = p[cur];
- bool odd = cur & 1;
- for (int i = 0; i < n; i++)
- if ((a[i] & 1) == odd)
- rs.pb(a[i]);
- sort(rs.begin(), rs.end());
- for (int i = 0; i < sz(rs); i++)
- cout << rs[i] << ' ';
- }
- int main() {
- ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
- #ifdef _LOCAL
- in("input.txt");
- int t = 1;
- // cin >> t;
- for (int i = 1; i <= t; i++) {
- cout << "Test #" << i << elf;
- clock_t start_time = clock();
- solve();
- cerr.precision(4); cerr << fixed;
- cerr << elf;
- cerr << "Time :: " << ld(clock() - start_time) / CLOCKS_PER_SEC << elf;
- cout << elf;
- }
- #else
- int t = 1;
- // cin >> t;
- while (t--) {
- solve();
- cout << el;
- }
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement