Submission #973274

#TimeUsernameProblemLanguageResultExecution timeMemory
973274terracottaliteRack (eJOI19_rack)C++14
40 / 100
1 ms572 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()
{
	int n, k;
	scanf("%d %d", &n, &k);

	k--;

	int 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("%d %d", &n, &k);
      |  ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...