#include <stdio.h> typedef struct data{ int min; int max; }safes; safes safe[100];//最多一百个陷阱即100个安全区 int main(int argc, char *argv[]) { int t,n;//t组数据,n个陷阱 int i; int step; int flag; safe[0].min=0; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&safe[i].max); scanf("%d",&safe[i+1].min); } safe[i].max=50000; /* for(i=0;i<=n;i++){ printf("最小值:%d 最大值:%d\n",safe[i].min,safe[i].max); } */ for(step=safe[1].min;step<=safe[1].max;step++){ flag = 1;//默认该步长可行 for(i=2;i<=n;i++){ step+=step; if(step<safe[i].min||step>safe[i].max){//如果不满足任一安全区间 flag = 0; break; } } if(flag==1){//若满足了所有安全区间 printf("Yes\n"); break; } } if(flag==0) printf("No\n"); } return 0; } |
Double click to view unformatted code.