Submission #999711

#TimeUsernameProblemLanguageResultExecution timeMemory
999711vjudge1Rack (eJOI19_rack)C++17
100 / 100
45 ms53760 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define mod 1000000007 ll binpow(ll a, ll b){ ll res = 1; if (b == -1){ return 0; } while (b != 0){ if (b % 2 == 0){ b /= 2; a *= a; a %= mod; } else{ b -= 1; res *= a; res %= mod; } } return res; } vector<vector<ll>> ve; ll ans = 1; ll f(ll n, ll k, ll va){ ll val = 0; if (n == 0){ return 0; } if (n <= 63){ ll op = pow(2, n - 1); if (k >= op){ val += binpow(2, va); ve.push_back({n - 1, k - op, va + 1}); ans += val; return 0; } } ve.push_back({n - 1, k, va + 1}); return 0; } int main(){ ll n, k; cin>>n>>k; k--; ve.push_back({n, k, 0}); for (int i = 0; i < ve.size(); i++){ f(ve[i][0], ve[i][1], ve[i][2]); ans %= mod; } cout<<ans; }

Compilation message (stderr)

rack.cpp: In function 'int main()':
rack.cpp:48:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for (int i = 0; i < ve.size(); i++){
      |                     ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...