月赛的(T1) 比较水 比较舒服
这就是个简单 (moni)
看起来很难理解
其实就是(3)种情况么如果图片有任何一边小于 (L),请输出 ("Too Young")
如果图片满足大小条件但不为正方形,请输出("Too Simple")
如果图片满足大小条件并且是正方形,请输出("Sometimes Naive")
韩信(大雾
所以么 我们用三个全局变量 即 : (N) , (L) , (G)
按照题意模拟即可如果图片的任何一边长度超过了 (G) ,那么系统会不断地对图片的长宽同时减半(向下取整),直至两边长度 (leq G )为止。
while(x > g or y > g) x >>= 1 , y >>= 1 ;
然后分情况 输出。(真好)
if(x < l or y < l) {
puts("Too Young") ;
continue ;
}
if(x != y) {
puts("Too Simple") ;
continue ;
}
if(x == y) {
puts("Sometimes Naive") ;
continue ;
}
完整代码
#include <bits/stdc++.h>
using namespace std ;
inline int rd() { int x = 0 ; int f = 1 ; register char c ;
#define gc c = getchar()
while(isspace(gc)) ;
if(c == '-') f = -1 , gc ;
while(x = (x<<1) + (x<<3) + (c&15) , isdigit(gc)) ;
return x * f ;
#undef gc
}
const int inf = INT_MAX >> 1 ;
int n ;
int l ;
int g ;
signed main() {
n = rd() ; l = rd() ; g = rd() ;
while(n --) {
int x = rd() ;
int y = rd() ;
while(x > g or y > g) x >>= 1 , y >>= 1 ;
if(x < l or y < l) {
puts("Too Young") ;
continue ;
}
if(x != y) {
puts("Too Simple") ;
continue ;
}
if(x == y) {
puts("Sometimes Naive") ;
continue ;
}
}
return 0 ;
}