Time To Get Up HDU

来源:互联网 发布:高校教务网络管理系统 编辑:程序博客网 时间:2024/06/02 07:55

比赛时打了好久这题。。结果补题的时候发现可以简单好多

#include <cstdio>  #include <iostream>  #include <cstring>  #include <algorithm>  using namespace std;  int a[8][25];  int judge(int k)  {    if(a[0][1+k]&&a[1][0+k]&&a[3][1+k]&&a[4][0+k]&&a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 8;     if(!a[0][1+k]&&!a[1][0+k]&&!a[3][1+k]&&!a[4][0+k]&&!a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 1;       if(a[0][1+k]&&!a[1][0+k]&&a[3][1+k]&&a[4][0+k]&&a[6][1+k]&&a[1][3+k]&&!a[4][3+k])      return 2;       if(a[0][1+k]&&!a[1][0+k]&&a[3][1+k]&&!a[4][0+k]&&a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 3;      if(!a[0][1+k]&&a[1][0+k]&&a[3][1+k]&&!a[4][0+k]&&!a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 4;      if(a[0][1+k]&&a[1][0+k]&&a[3][1+k]&&!a[4][0+k]&&a[6][1+k]&&!a[1][3+k]&&a[4][3+k])      return 5;       if(a[0][1+k]&&a[1][0+k]&&a[3][1+k]&&a[4][0+k]&&a[6][1+k]&&!a[1][3+k]&&a[4][3+k])      return 6;       if(a[0][1+k]&&!a[1][0+k]&&!a[3][1+k]&&!a[4][0+k]&&!a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 7;       if(a[0][1+k]&&a[1][0+k]&&a[3][1+k]&&!a[4][0+k]&&a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 9;       if(a[0][1+k]&&a[1][0+k]&&!a[3][1+k]&&a[4][0+k]&&a[6][1+k]&&a[1][3+k]&&a[4][3+k])      return 0;  }  int main()  {      int t;      scanf("%d%*c",&t);      char s[30];      while(t--)      {          memset(a,0,sizeof(a));          for(int i=0;i<7;i++)          {            scanf("%s",s);              for(int j=0;j<21;j++)                  if(s[j]=='X')                    a[i][j]=1;          }          int b,c,d,e;          b=judge(0);          c=judge(5);          d=judge(12);          e=judge(17);          printf("%d%d:%d%d\n",b,c,d,e);      }      return 0;  }