Submission #457978

#TimeUsernameProblemLanguageResultExecution timeMemory
457978mansurRack (eJOI19_rack)C++14
40 / 100
1087 ms16716 KiB
#include<bits/stdc++.h> #pragma optimize ("g",on) #pragma GCC optimize ("Ofast") #pragma GCC optimize ("unroll-loops") #pragma GCC optimize ("03") #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native") using namespace std; #define all(a) a.begin(), a.end() #define ll long long #define pb push_back #define nl '\n' #define popb pop_back() #define sz size() #define ld long double #define ull unsigned long long #define F first #define S second #define fix fixed << setprecision #define pii pair<int, int> #define E exit (0) #define int long long const int inf = (1ll << 62ll), N = 2e6 + 1, mod = 998244353; vector<pii> dd = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; int t[4 * N]; void update(int u, int tl, int tr, int pos) { if (tl > pos || tr < pos) return; if (tl == tr) { t[u] = 1; return; } int mid = (tl + tr) / 2; update(u * 2, tl, mid, pos); update(u * 2 + 1, mid + 1, tr, pos); t[u] = t[u * 2] + t[u * 2 + 1]; } int get(int u, int tl, int tr) { if (tl == tr) return tl; int mid = (tl + tr) / 2; if (t[u * 2 + 1] < t[u * 2]) return get(u * 2 + 1, mid + 1, tr); return get(u * 2, tl, mid); } signed main() { //freopen("invtrans.in", "r", stdin); //freopen("invtrans.out", "w", stdout); ios_base::sync_with_stdio(NULL); cin.tie(NULL); int n, k; cin >> n >> k; n = (1 << n); for (int i = 1; i <= k; i++) { int pos = get(1, 1, n); update(1, 1, n, pos); if (i == k) cout << pos; } }

Compilation message (stderr)

rack.cpp:3: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    3 | #pragma optimize ("g",on)
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...