usaco lamps

来源:互联网 发布:kahn算法 编辑:程序博客网 时间:2024/05/30 04:04
#include<cstdio> #include<cstdlib>int db[8][7]={{0,0,0,0,0,0,0},{0,0,0,1,1,1,0},{1,0,1,0,1,0,1},{1,0,1,1,0,1,1},                  //1              7                 2              4{0,1,0,0,1,0,0},{0,1,0,1,0,1,0},{1,1,1,0,0,0,1},{1,1,1,1,1,1,1}};//     5              3                6               0/*db[8][7]={{0,1,1,1,1,1,1},{0,0,0,0,0,0,0},{0,0,1,0,1,0,1},{0,1,0,1,0,1,0},{0,0,1,1,0,1,1},{0,1,0,0,1,0,0},{0,1,1,0,0,0,1},{0,0,0,1,1,1,0}};正常序*/int n,c,on[101],off[101],ff=1;void fun(int o){    int i;    for (i=1;i<=on[0];i++) if (!db[o][on[i]]) return;    for (i=1;i<=off[0];i++) if (db[o][off[i]]) return;    ff=0;    for (i=1;i<=n;i++) printf("%d",db[o][i%6]);    printf("\n");}int main(){    freopen("lamps.in","r",stdin);    freopen("lamps.out","w",stdout);    scanf("%d%d",&n,&c);    do {        scanf("%d",&on[++on[0]]);        if (on[on[0]]!=-1)  on[on[0]]=on[on[0]]%6; else break;    }while (1);    do {        scanf("%d",&off[++off[0]]);        if (off[off[0]]!=-1)  off[off[0]]=off[off[0]]%6; else break;    }while (1);    --on[0];--off[0];    if (c==0) {        fun(7);    } else    if (c==1) {        fun(0);fun(2);fun(3);fun(5);    } else    if (c==2) {        fun(0);fun(1);fun(2);fun(4);fun(5);fun(6);fun(7);    }    if (c>=3) {        fun(0);fun(1);fun(2);fun(3);fun(4);fun(5);fun(6);fun(7);    }    if (ff) printf("IMPOSSIBLE\n");    return 0;}

1 0
原创粉丝点击