Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //UVA12627ErraticExpansion
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- using namespace std;
- const long long MAXN = 30;
- inline long long c(int k) {
- return k == 0 ? 1 : c(k - 1) * 3;
- }
- inline long long f(int k, int i) {
- if(i == 0) return 0;
- if(k == 0) return 1;
- if(i <= (1 << (k - 1))) return 2 * f(k - 1, i);
- else return 2 * c(k - 1) + f(k - 1, i - (1 << (k - 1)));
- }
- int main() {
- freopen("UVA12627out.txt", "w", stdout);
- int T;
- scanf("%d", &T);
- for(int i = 0; i < T; i++) {
- int k, a, b;
- scanf("%d%d%d", &k, &a, &b);
- printf("Case %d: %lld\n", i + 1, f(k, b) - f(k, a - 1));
- }
- return 0;
- }
- /*
- 3
- 0 1 1
- 3 1 8
- 3 3 7
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement