Submission #973277

#TimeUsernameProblemLanguageResultExecution timeMemory
973277terracottaliteRack (eJOI19_rack)C++14
100 / 100
1 ms600 KiB
#include <stdio.h>

#define MOD 1000000007

long long fastpow(long long base, long long exp) {
	if (exp == 0) return 1;
	long long x = fastpow(base, exp / 2);
	x = (x * x)%MOD;
	if (exp&1) x = (x * base)%MOD;
	return x;
}

int main()
{
	long long n, k;
	scanf("%lld %lld", &n, &k);

	k--;

	long long z = n-1;

	long long ans = 0;

	while (k) {
		if (k&1) ans = (ans + fastpow(2, z))%MOD;
		z--;
		k >>= 1;
	}

	ans = (ans + 1)%MOD;

	printf("%lld\n", ans);
}

Compilation message (stderr)

rack.cpp: In function 'int main()':
rack.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |  scanf("%lld %lld", &n, &k);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...