万圣节派对
-
描述
-
万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:
-
门票号是由0~6组成的六位数(0~6这几个数字可重用)
-
每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)
-
每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)
-
输入
-
第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)
输出
- 对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。 样例输入
-
2 001001 001002 001011 001012
样例输出
-
001001 001002 001011 001012
-
#include<stdio.h>
#include<math.h>
int main(int argc ,char * argv[]){
int N=0;
int a = 0;
int b = 0;
int m[6] = {0};
int p = 0;
int n = 0;
int v = 0;
scanf("%d",&N);
while(N--){
scanf("%d%d",&a,&b);
for(int i = a;i <=b;i++)
{
v=p=n=0;
m[0] = i/100000;
m[1] = i/10000%10;
m[2] = i/1000%10;
m[3] = i /100%10;
m[4] = i /10%10;
m[5] = i%10;
for(int i = 0;i<4;i++)
{
if(m[i] == m[i+1]&&m[i+1] == m[i+2] ){
p=1;
break;
}
}
for(int i = 0;i<6;i++){
if(m[i] >6){
v = 1;
break;
}
}
for(int i = 0;i<5;i++){
if(abs(m[i] - m[i+1]) >4)
{
p = 1;
break;
}
}
if(p == 0&&v==0&&n==0){
for(int i =0;i<=5;i++)
printf("%d",m[i]);
printf("%\n");
}
}
printf("\n");
}
return 0;
}