汉诺塔 hdu2511

来源:互联网 发布:燕山大学图书馆数据库 编辑:程序博客网 时间:2024/06/07 05:07
#include <stdio.h>typedef long long ll;int main() {int k , j , l;scanf("%d",&k);for(int i = 0; i < k; i++) {ll n , m , s , t;scanf("%lld%lld",&n,&m);s = 1;t = 2;for(l = 1; l <= n; l++) {if(m%t == s) {break;}s = t;t *= 2;}printf("%d",l);j = m/t;if(n % 2 == l % 2) {if((j + 1)%3 == 0) printf("2 1\n");if((j + 1)%3 == 1) printf("1 3\n");if((j + 1)%3 == 2) printf("3 2\n");}else {if((j + 1)%3 == 0) printf("3 1\n");if((j + 1)%3 == 1) printf("1 2\n");if((j + 1)%3 == 2) printf("2 3\n");}}return 0;}