Submission #761211

# Submission time Handle Problem Language Result Execution time Memory
761211 2023-06-19T11:10:57 Z KN200711 Rack (eJOI19_rack) C++14
100 / 100
2 ms 304 KB
# include <bits/stdc++.h>
# define ll long long
using namespace std;

const ll MOD = 1e9 + 7;

ll fast(ll a, ll b) {
	if(b == 0) return 1ll;
	if(b == 1) return a;
	ll K = fast(a, b/2ll);
	K *= K;
	K %= MOD;
	if(b&1) {
		K *= a;
		K %= MOD;
	}
	return K;
}

ll add(ll a, ll b) {
	a += b;
	a %= MOD;
	return a;	
}

int main() {
	ll N, K;
	scanf("%lld %lld", &N, &K);
	
	ll ans = 0ll;
	for(int i=N;i>=1;i--) {
		if(i == 1) {
			if(K&1) ans = add(ans, 1ll);
			else ans = add(ans, 2ll);
		} else {
			if(K&1) {
				
			} else {
				ans = add(ans, fast(2ll, 1ll * i - 1ll));
			}
		}
		
		K = (K + 1ll) / 2ll;
	}
	printf("%lld\n", ans);
	return 0;
}

Compilation message

rack.cpp: In function 'int main()':
rack.cpp:28:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |  scanf("%lld %lld", &N, &K);
      |  ~~~~~^~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 300 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 300 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 304 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 2 ms 300 KB Output is correct