# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
775156 | vjudge1 | Rack (eJOI19_rack) | C++17 | 6 ms | 7928 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long lo;
#define fi first
#define se second
#define int long long
#define endl "\n"
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)
const lo inf = 1000000000;
const lo li = 1000005;
const lo mod = 1000000007;
int n,m,a[li],k,flag,t,pw[li];
int cev;
string s;
vector<int> v;
inline int add(int x,int y){
if(x+y>=mod)return x+y-mod;
return x+y;
}
inline int mul(int x,int y){
return (x%mod)*(y%mod)%mod;
}
int32_t main(void){
scanf("%lld %lld",&n,&m);
pw[0]=1;
for(int i=1;i<=n;i++)pw[i]=add(pw[i-1],pw[i-1]);
cev=1;
for(int i=n-1;i>=0;i--){
if(m%2==0)cev=add(cev,pw[i]);
m=(m+1)/2;
}
printf("%lld\n",cev);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |