Submission #977244

#TimeUsernameProblemLanguageResultExecution timeMemory
977244vahagngRack (eJOI19_rack)C++17
100 / 100
1 ms360 KiB
//----------vahagng----------// #define CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; // Defines #define ll long long #define all(v) v.begin(), v.end() #define pii pair<int, int> #define ppb pop_back #define pb push_back #define mii map<int, int> #define mll map<long long, long long> #define no_ans cout << -1 << '\n'; #define YES cout << "YES\n"; #define NO cout << "NO\n"; #define ok cout << "OK\n"; // Constants const ll N = 3e5 + 10, M = 105; const ll inf = 1e18, mod = 1000000007; // Functions void SetIO(string str = "") { if (str != "") { freopen((str + ".in").c_str(), "r", stdin); freopen((str + ".out").c_str(), "w", stdout); } else { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); } } void FastIO() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); } ll add(ll a, ll b) { return (a + b)%mod; } ll mult(ll a, ll b) { return (a%mod * b%mod)%mod; } ll sub(ll a, ll b) { return (a - b + 2*mod)%mod; } long long binpower(long long a, long long n) { if(n == 0) { return 1; } if(n == 1) { return a; } if(n % 2 == 1) { long long curr = binpower(a, n / 2); curr = mult(curr, curr); curr = mult(a, curr); return curr; } else { long long curr = binpower(a, n / 2); return mult(curr, curr); } } ll power(int a, int b) { ll res = 1; while(b--) { res*=a; } return res; } // const int N = 2e5 + 10; // pair<int,int>max_dist; // vector<int>adj[N]; // int dists[N]; // void dfs(int node, int parent, int dist) // { // dists[node] = max(dists[node], dist); // if(dist > max_dist.first) // { // max_dist = {dist, node}; // } // for(auto i: adj[node]) // { // if(i == parent) continue; // dfs(i, node, dist + 1); // } // } // pair<int, int> get_farthest_distance(int node) // { // max_dist = {-1, -1}; // dfs(node, -1, 0); // return max_dist; // } void precision(int x) { cout.setf(ios::fixed | ios::showpoint); cout.precision(x); return; } ll ceil_division(ll a, ll b) { return (a + b - 1) / b; } ll digit_sum(int n) { ll sum = 0; for(int i = 1; i * i <= n; i++) { if(n%i == 0) { sum += i; if(n/i == i || n / i == n) continue; sum += (n/i); } } return sum; } ll lcm(ll a, ll b) { return a / gcd(a, b) * b; } // Solution ll n, q; /* 5 6 1 2 3 4 5 2 1 3 1 1 3 2 1 5 2 4 4 1 1 1 2 4 4 */ void solve() { cin >> n >> q; q--; ll z = n-1; ll ans = 0; while(q) { if(q&1) ans = add(ans, binpower(2, z)); z--; q>>=1; } ans = add(ans, 1); cout << ans << '\n'; } void precalc() { } int main() { FastIO(); precalc(); int test_case = 1; // cin >> test_case; while (test_case--) { solve(); } return 0; }

Compilation message (stderr)

rack.cpp: In function 'void SetIO(std::string)':
rack.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         freopen((str + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rack.cpp:34:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |         freopen((str + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rack.cpp:36:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
rack.cpp:37:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |         freopen("output.txt", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...