제출 #794313

#제출 시각아이디문제언어결과실행 시간메모리
794313LudisseyRack (eJOI19_rack)C++14
40 / 100
1 ms300 KiB
#include <iostream> #include <string> #include <set> #include <map> #include <cstring> #include <unordered_map> #include <vector> #include <fstream> #include <bitset> #include <tuple> #include <cmath> #include <cstdint> #include <stack> #include <cassert> #include <cstdio> #include <queue> #include <iterator> #include <iomanip> #include <algorithm> #include <sstream> using namespace std; int n, k; int ceiling(int a, int b) { return (a + b + 1) / 2; } long long div(long long l, long long r, int indx, long long mult) { if (r == l + 1) return l; int mid= ceiling(l ,r); if (indx % mult == 0) { return div(mid, r, indx, mult * 2); } else { return div(l, mid, indx+(mult/2), mult * 2); } } signed main() { cin >> n >> k; long long tot = pow(2, n); int extra = 0; if (k > tot / 2) { k -= (tot / 2); extra = 1; } long long ans = div(1, tot, k, 2) + extra; long long mod = ans % 1000000007; cout << mod << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...