您的位置:首页 > 其它

万圣节派对

2016-05-19 20:51 246 查看
Time Limit: 1000ms
Memory Limit: 128000KB
64-bit integer IO format: Java class name:

Submit Status

万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:

门票号是由0~6组成的六位数(0~6这几个数字可重用)

每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)

每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)

Input

第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)

Output

对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。

Sample Input

2
001001 001002
001011 001012

Sample Output

001001
001002

001011
001012


Submit Status

手动模拟...

代码:

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <limits.h>
#include <algorithm>
#include <iostream>
#include <ctype.h>
#include <iomanip>
#include <queue>
#include <map>
#include <stdlib.h>
using namespace std;

int a[6];

int pd(int m)
{
a[0]=m%10;
a[1]=m/10%10;
a[2]=m/100%10;
a[3]=m/1000%10;
a[4]=m/10000%10;
a[5]=m/100000%10;
int flag=1;
for(int i=0; i<4;i++){
if(a[i]>6||a[i+1]>6||a[i+2]>6){
flag=0;
break;
}
if(a[i]==a[i+1]&&a[i]==a[i+2]){
flag=0;
break;
}
if(fabs(double(a[i] - a[i+1]))>4||fabs(double(a[i+1] - a[i+2]))>4){
flag=0;
break;
}
}
return flag;
}

int main()
{
int n,x,y;
scanf("%d",&n);
while(n--){
scanf("%d%d",&x,&y);
for(int i=x; i<=y; i++){
if(pd(i))
printf("%06d\n",i);
}
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: