Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int p[404][404];
- //#define return 0; e++;
- int main()
- {
- ios::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- //freopen("input.txt","r",stdin);
- //freopen("output.txt","w",stdout);
- int n,m,g,e=-1000;
- cin>>n>>m>>g;
- for(int i=0;i<404;i++)
- {
- for(int j=0;j<404;j++)
- {
- p[i][j]=0;
- }
- }
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- cin>>p[i][j];
- }
- }
- if(p[1][1]==1 || p[1][1]==2)
- {
- cout<<"NO";
- return 0;
- } else p[1][1]=5*(bool)(p[1][1]!=0);
- for(int i=1;i<m;i++)
- {
- if(p[1][i]==1 || p[1][i]==5)
- {
- if(p[1][i+1]==2 || p[1][i+1]==1)
- {
- p[1][i+1]=1;
- } else if(p[1][i+1]==3 || p[1][i+1]==4 || p[1][i+1]==5 || p[1][i+1]==6)
- {
- p[1][i+1]=6;
- } else
- {
- cout<<"NO";
- //cout<<i;
- return 0;
- }
- } else
- {
- if(p[1][i+1]==2 || p[1][i+1]==1)
- {
- cout<<"NO";
- return 0;
- }
- if(p[1][i+1]==3 || p[1][i+1]==4 || p[1][i+1]==5 || p[1][i+1]==6)
- {
- p[1][i+1]=5;
- }
- }
- }
- if(p[1][m]==1 || p[1][m]==5)
- {
- cout<<"NO";
- return 0;
- }
- for(int i=2;i<=n;i++)
- {
- if(p[i-1][1]==2 || p[i-1][1]==5 || p[i-1][1]==6)
- {
- if(p[i][1]==1 || p[i][1]==2)
- {
- p[i][1]=2;
- } else if(p[i][1]==3 || p[i][1]==4 || p[i][1]==5 || p[i][1]==6)
- {
- p[i][1]=4;
- } else
- {
- cout<<"NO";
- return 0;
- }
- } else
- {
- if(p[i][1]==1 || p[i][1]==2)
- {
- cout<<"NO";
- return 0;
- }
- if(p[i][1]==3 || p[i][1]==4 || p[i][1]==5 || p[i][1]==6)
- {
- p[i][1]=5;
- }
- }
- for(int j=1;j<m;j++)
- {
- if((p[i][j]==1 || p[i][j]==5 || p[i][j]==4) && (p[i-1][j+1]==5 || p[i-1][j+1]==6 || p[i-1][j+1]==2))
- {
- if(p[i][j+1]==3 || p[i][j+1]==4 || p[i][j+1]==5 || p[i][j+1]==6)
- {
- p[i][j+1]=3;
- } else
- {
- cout<<"NO";
- return 0;
- }
- } else if((p[i][j]==1 || p[i][j]==5 || p[i][j]==4) && !(p[i-1][j+1]==5 || p[i-1][j+1]==6 || p[i-1][j+1]==2))
- {
- if(p[i][j+1]==2 || p[i][j+1]==1)
- {
- p[i][j+1]=1;
- } else if(p[i][j+1]==3 || p[i][j+1]==4 || p[i][j+1]==5 || p[i][j+1]==6)
- {
- p[i][j+1]=6;
- } else
- {
- cout<<"NO";
- return 0;
- }
- } else if(!(p[i][j]==1 || p[i][j]==5 || p[i][j]==4) && (p[i-1][j+1]==5 || p[i-1][j+1]==6 || p[i-1][j+1]==2))
- {
- if(p[i][j+1]==2 || p[i][j+1]==1)
- {
- p[i][j+1]=2;
- } else if(p[i][j+1]==3 || p[i][j+1]==4 || p[i][j+1]==5 || p[i][j+1]==6)
- {
- p[i][j+1]=4;
- } else
- {
- cout<<"NO";
- return 0;
- }
- } else if(!(p[i][j]==1 || p[i][j]==5 || p[i][j]==4) && !(p[i-1][j+1]==5 || p[i-1][j+1]==6 || p[i-1][j+1]==2))
- {
- if(p[i][j+1]==3 || p[i][j+1]==4 || p[i][j+1]==5 || p[i][j+1]==6)
- {
- p[i][j+1]=5;
- } else if(p[i][j+1]!=0)
- {
- cout<<"NO";
- //cout<<i<<" "<<j;
- return 0;
- }
- }
- }
- if(p[i][m]==5 || p[i][m]==1)
- {
- cout<<"NO";
- return 0;
- }
- }
- for(int i=1;i<=m;i++)
- {
- if(p[n][i]==2 || p[n][i]==5 || p[n][i]==6)
- {
- cout<<"NO";
- return 0;
- }
- }
- cout<<"YES\n";
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=m;j++)
- {
- cout<<p[i][j]<<" ";
- }
- cout<<"\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement