內容 :
輸入說明 :
每筆測資共輸入一行
此行包含兩正整數I J(1<=I、J<=2^30)
此行包含兩正整數I J(1<=I、J<=2^30)
輸出說明 :
請輸出第I(直)行第J(橫)列之數字
範例輸入 :
2 3
範例輸出 :
12
提示 :
出處 :
/**********************************************************************************/
/* Problem: d923 "規律" from */
/* Language: C */
/* Result: AC (3ms, 270KB) on ZeroJudge */
/* Author: morris1028 at 2011-05-29 22:22:01 */
/**********************************************************************************/
#include<stdio.h>
#include<stdlib.h>
main() {
int i, j;
while(scanf("%d %d", &i, &j) == 2) {
long long t, Ans = 0;
while(1) {
t = 2;
while(t < i || t < j) {
t *= 2;
}
if(i == 1 && j == 1) {Ans++;break;}
if(t / 2 >= i && t / 2 < j)
Ans += t*t / 2, j -= t / 2;
else if(t / 2 < i && t / 2 < j)
Ans += t*t / 4, i -= t / 2, j -= t / 2;
else
Ans += t*t / 4 * 3, i -= t / 2;
}
printf("%lld\n", Ans);
}
return 0;
}
沒有留言:
張貼留言