vijos1016

来源:互联网 发布:淘宝开店分享心得 编辑:程序博客网 时间:2024/06/06 12:59
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;int a[10],b[10][10]={{0},                     {0,1,1,0,1,1,0,0,0,0},                     {0,1,1,1,0,0,0,0,0,0},                     {0,0,1,1,0,1,1,0,0,0},                     {0,1,0,0,1,0,0,1,0,0},                     {0,0,1,0,1,1,1,0,1,0},                     {0,0,0,1,0,0,1,0,0,1},                     {0,0,0,0,1,1,0,1,1,0},                     {0,0,0,0,0,0,0,1,1,1},                     {0,0,0,0,0,1,1,0,1,1}},s=0,m=1000000,c[10],d[10],e[10];void find(){     for(c[1]=0;c[1]<=3;c[1]++)       for(c[2]=0;c[2]<=3;c[2]++)         for(c[3]=0;c[3]<=3;c[3]++)           for(c[4]=0;c[4]<=3;c[4]++)             for(c[5]=0;c[5]<=3;c[5]++)               for(c[6]=0;c[6]<=3;c[6]++)                 for(c[7]=0;c[7]<=3;c[7]++)                   for(c[8]=0;c[8]<=3;c[8]++)                     for(c[9]=0;c[9]<=3;c[9]++)                     {                         bool flag=true;                         for (int i=1; i<=9; i++) a[i]=d[i];                         for (int i=1; i<=9; i++)                         {                             for (int j=1; j<=9; j++) a[i]+=c[j]*b[j][i];                             a[i]%=4;                             if (a[i]!=0) {flag=false; break;}                         }                         if (flag)                         {                            int ss=0;                            for (int i=1; i<=9; i++) ss+=c[i];                            if (ss<m)                             {                                m=ss;                                for(int i=1; i<=9; i++) e[i]=c[i];                            }                         }                     }}int main(){    for(int i=1; i<=9; i++)    {        cin>>a[i];        d[i]=a[i];    }    find();    bool flag=false;    for(int i=1;i<=9;i++)      for(int j=1; j<=e[i]; j++)      {              if(flag) cout<<" "; else flag=true;              cout<<i;      }    return 0;}

0 0
原创粉丝点击