多校4 HDU-6077 Time To Get Up 模拟水题

来源:互联网 发布:ubuntu分区图文教程 编辑:程序博客网 时间:2024/06/03 21:23

原题链接:HDU-6077
大意:模拟即可。
思路:统计 7 个点。
打了23分钟..
代码实现:

#include <bits/stdc++.h>using namespace std;typedef long long ll;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f//#define LOCALinline void read(int &x){    x=0;char p=getchar();    while(!(p<='9'&&p>='0'))p=getchar();    while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar();}void Print(int a,int b,int c,int d,int e,int f,int g){    if(a&&b&&c&&e&&f&&g&&!d) printf("0");    else if(!a&&!b&&c&&!d&&!e&&f&&!g) printf("1");    else if(a&&!b&&c&&d&&e&&!f&&g) printf("2");    else if(a&&!b&&c&&d&&!e&&f&&g) printf("3");    else if(!a&&b&&c&&d&&!e&&f&&!g) printf("4");    else if(a&&b&&!c&&d&&!e&&f&&g) printf("5");    else if(a&&b&&!c&&d&&f&&g&&e) printf("6");    else if(a&&!b&&c&&!d&&!e&&f&&!g) printf("7");    else if(a&&b&&c&&d&&e&&f&&g) printf("8");    else if(a&&b&&c&&d&&f&&g&&!e) printf("9");}int main() {#ifdef LOCAL    freopen("in.txt","r",stdin);    freopen("out.txt","w",stdout);#endif    int t;    read(t);    while(t--){        string s[8];        for(int i=1;i<=7;i++){            cin>>s[i];        }        //for(int i=1;i<=7;i++) D(s[i]);        for(int i=0;i<20;i+=5){            int a=0,b=0,c=0,d=0,e=0,f=0,g=0;            if(s[1][1+i]=='X') a=1;            if(s[2][0+i]=='X') b=1;            if(s[2][3+i]=='X') c=1;            if(s[4][1+i]=='X') d=1;            if(s[5][0+i]=='X') e=1;            if(s[5][3+i]=='X') f=1;            if(s[7][1+i]=='X') g=1;            Print(a,b,c,d,e,f,g);            if(i==5) printf(":"),i+=2;        }        puts("");    }    return 0;}