Submission #491808

#TimeUsernameProblemLanguageResultExecution timeMemory
491808uncriptedRack (eJOI19_rack)C++11
100 / 100
9 ms8140 KiB
#include<bits/stdc++.h>
using namespace std;
long long const m=1000000007;	
long long a[1000005];
long long p2[1000001];
int main(){
	long long n,k;
	cin>>n>>k;

	long long k1=k;
	long long ii=1;

	k1--;
	p2[0]=1;
	for(long long i=1; i<=1000001; i++){
		p2[i]=(p2[i-1]*2)%m;
	}
	while(k1>0){
		a[ii]=k1%2;
		k1=k1/2;
		ii++;
		//cout<<k1<<"l"<<endl;
	}
	ii=n;
	long long sum=0;
	for(long long i=ii; i>=1; i--){
		if(a[i]==1){
			sum+=(p2[ii-i]);
			sum=sum%m;
		}
	}
	
	cout<<(sum+1)%m;
 	
}

Compilation message (stderr)

rack.cpp: In function 'int main()':
rack.cpp:16:8: warning: iteration 1000000 invokes undefined behavior [-Waggressive-loop-optimizations]
   16 |   p2[i]=(p2[i-1]*2)%m;
      |   ~~~~~^~~~~~~~~~~~~~
rack.cpp:15:22: note: within this loop
   15 |  for(long long i=1; i<=1000001; i++){
      |                     ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...