| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
wa.求解,附带几组测试数据,全部通过了……/*
_ _ _ _ _ _ _
| || || || | _| _||_||_
|_||_||_||_| |_ _| | _|
_ _ _
| | | | || ||_ |_|
| | _| | | ||_| _||_|
_ _ _ _ _
| _ _|| _ ||
| _ |_ | | _ |_|
_ _ _ _ _ _
||_ _|| _| ||
| _ |_ | || |_|
_ _ _ _ _ _
| || || | | _| _||_||_
|_||_||_| | |_ _| ||_|
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int m=12,a1,a2,b1,b2;
int y1,y2,y3,y4,x1,x2,x3,x4,z1,z2,z3,z4;
char cstr1[3][12],cstr2[3][12];
int istr1[4][10],istr2[4][10];
char str[10][3][4]={{" _ ","| |","|_|"},
{" "," |"," |"},
{" _ "," _|","|_ "},
{" _ "," _|"," _|"},
{" ","|_|"," |"},
{" _ ","|_ "," _|"},
{" _ ","|_ ","|_|"},
{" _ "," |"," |"},
{" _ ","|_|","|_|"},
{" _ ","|_|"," _|"}
};
void f_cin()//输入
{
int i,j;
for(j=0;j<3;j++)
{
for(i=0;i<m;i++)cstr1[j][i]=getchar();
getchar();
for(i=0;i<m;i++)cstr2[j][i]=getchar();
getchar();
}
}
/*
共有四位,时间范围是0000~2359,所以第一位小于3,第三位小于6.这样就能找出每位所有的可能数字
*/
void f_fun1()//计算正确时间
{
int i,j,k;
int istr[12];
memset(istr,1,sizeof(istr));
for(int p=0,j=0;j<12;j++)
{
for(i=0;i<3;i++)
for(k=0;k<10;k++)
if(istr[k] && (cstr1[i][j]!=32)&&(str[k][i][j%3]==32) )
istr[k]=0;
if(p==0)for(int n=3;n<10;n++)istr[n]=0;
if(p==2)for(int n=6;n<10;n++)istr[n]=0;
if(j%3==2)
{
int i,j=0;
for(i=0;i<10;i++)
if(istr[i]){j++;istr1[p][j]=i;}
istr1[p][0]=j;
p++;
memset(istr,1,sizeof(istr));
}
}
}
void f_fun2()//计算慢15分的时间
{
int i,j,k;
int istr[12];
memset(istr,1,sizeof(istr));
for(int p=0,j=0;j<12;j++)
{
for(i=0;i<3;i++)
for(k=0;k<10;k++)
if(istr[k] && (cstr2[i][j]!=32)&&(str[k][i][j%3]==32) )
istr[k]=0;
if(p==0)for(int n=3;n<10;n++)istr[n]=0;
if(p==2)for(int n=6;n<10;n++)istr[n]=0;
if(j%3==2)
{
int i;
for(i=0;i<10;i++)
if(istr[i]){istr2[p][i]=i;}
p++;
memset(istr,1,sizeof(istr));
}
}
}
/*
共有四位,时间范围是0000~2359,
对于头两位,若不需借位,便可直接
*/
int f_fun4()//综合计算
{
int i,j,hhh;
a1=0;a2=0;b1=0;b2=0;
for(i=1;i<=istr1[0][0];i++)
{
for(j=1;j<=istr1[1][0];j++)
{
int p1=istr1[0][i];
int p2=istr1[1][j];
hhh=p1*10+p2;
if(hhh>=24)continue;
if(istr2[0][p1]!=-1 && istr2[1][p2]!=-1){a1++;y1=p1;y2=p2;}
if(a2>1)continue;
int l=a2;
if(hhh==0)
{
if(istr2[0][2]!=-1 && istr2[1][3]!=-1)a2++;
}
else
{
hhh-=1;
int p3=hhh/10;
int p4=hhh%10;
if(istr2[0][p3]!=-1 && istr2[1][p4]!=-1)a2++;
}
if(l<a2){x1=p1;x2=p2;}
}
if(a2>1 && a1>1)return 0;
}
for(i=1;i<=istr1[2][0];i++)
{
for(j=1;j<=istr1[3][0];j++)
{
int p1=istr1[2][i];
int p2=istr1[3][j];
int hhh=p1*10+p2;
if(hhh<15&&a2)
{
hhh=hhh+60-15;
int p3=hhh/10;
int p4=hhh%10;
if(istr2[2][p3]!=-1 && istr2[3][p4]!=-1){b2++;x3=p1;x4=p2;}
}
else if(hhh>=15&&a1)
{
hhh=hhh-15;
int p3=hhh/10;
int p4=hhh%10;
if(istr2[2][p3]!=-1&&istr2[3][p4]!=-1){b1++;y3=p1;y4=p2;}
}
}
if(a1*b1+a2*b2>1)return 0;
}
if(a1==1&&b1==1){z1=y1;z2=y2;z3=y3;z4=y4;return 1;}
if(a2==1&&b2==1){z1=x1;z2=x2;z3=x3;z4=x4;return 1;}
}
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--)
{
x1=0,x2=0,x3=0,x4=0;
y1=0,y2=0,y3=0,y4=0;
z1=0,z2=0,z3=0,z4=0;
memset(istr2,-1,sizeof(istr2));
memset(istr1,-1,sizeof(istr1));
f_cin();
f_fun1();
f_fun2();
if(f_fun4())
printf("%d%d%d%d\n",z1,z2,z3,z4);
else
printf("Not Sure\n");
}
getchar();getchar();
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator