CF1080D Olya and magical square

题目描述

最近 Olya 收到了一个边长为 $2^n$ 的魔法正方形。 她的姐姐认为一个正方形太无趣了,于是要求 Olya 进行 $k$ 次分割操作。 每次操作,Olya 会选择一个边长不为 $1$ 的正方形,并把这个正方形分割为四个等大的小正方形。 Olya 很开心能满足姐姐的请求,但是她自己也要开心。 Olya 是开心的,当且仅当能从左下角到右上角找到一条正方形边长相同,四联通的路径。 请你输出在这 $k$ 次切割后,路径上正方形的边长。 如果不论怎么切都不能找出一条四联通的正方形边长相同的路径,或者这个正方形不能被切割 $k$ 次,输出 `NO`

输入格式

第一行一个整数 $t$,表示有 $t$ 组数据。 接下来 $t$ 行,一行两个整数 $n,k$,意义如上文所述。

输出格式

对于每组数据,输出一行。 若 $k$ 次切割后能找出一种可行的路径,输出 `YES` 和路径上正方形的边长,如果有多种可能的路径上的正方形的边长,输出任意一种。因为这个边长可能很大,请输出这个边长取关于 2 的对数。 (即,若 $2^k = \text{边长}$,请输出 $k$) 若不能,或者不能切割 $k$ 次,输出 `NO` 所有输出中 `YES` 和 `NO` 的大小写任意。

说明/提示

$1 \leq t \leq 10^3$ $1 \leq n \leq 10^9$ $1 \leq k \leq 10^{18}$