Submission #859605

#TimeUsernameProblemLanguageResultExecution timeMemory
859605lucriGardening (RMI21_gardening)C++17
11 / 100
15 ms860 KiB
#include <bits/stdc++.h> using namespace std; int test,n,m,k; vector<vector<int>>a; bool completeaza(int i,int j,int ii,int jj,int k) { int n=ii-i+1; int m=jj-j+1; if(k<=n*m/4-n/2-m/2) { for(int l=i;l<=ii;++l) a[l][j]=a[l][jj]=k; for(int c=j;c<=jj;++c) a[i][c]=a[ii][c]=k; return completeaza(i+1,j+1,ii-1,jj-1,k-1); } else if(k==n*m/4-n/2-m/2+1) { int iii=ii,jjj=jj; if(iii-i>jjj-j) iii-=2; else jjj-=2; for(int l=i;l<=iii;++l) a[l][j]=a[l][jjj]=k; for(int c=j;c<=jjj;++c) a[i][c]=a[iii][c]=k; --k; for(int l=i+1;l<=i+5;++l) a[l][j]=a[l][jjj]=k; for(int c=j+1;c<=j+5;++c) a[i][c]=a[iii][c]=k; --k; } else if(k<n*m/4) { int iii=ii,jjj=jj; while((n*m-(k-1)*4)!=(iii-i)*2+(jjj-j)*2) { if(iii-i>jjj-j) iii-=2; else jjj-=2; } for(int l=i;l<=iii;++l) a[l][j]=a[l][jjj]=k; for(int c=j;c<=jjj;++c) a[i][c]=a[iii][c]=k; --k; } for(int l=i;l<=ii;++l) for(int c=j;c<=jj;++c) { if(a[l][c]==0) { if(a[l][c+1]||a[l+1][c]||a[l+1][c+1]) exit(1); a[l][c]=a[l][c+1]=a[l+1][c]=a[l+1][c+1]=k; --k; } } return true; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>test; while(test--) { cin>>n>>m>>k; a.clear(); a.resize(n+5); for(int i=1;i<=n;++i) a[i].resize(m+5); if(n%2==1||m%2==1||k==n*m/4-1||n==m&&k==n/2+1||k>n*m/4||k<max(n/2,m/2)) { cout<<"NO\n"; continue; } completeaza(1,1,n,m,k); cout<<"YES\n"; for(int i=1;i<=n;++i) { for(int j=1;j<=m;++j) { cout<<a[i][j]<<' '; a[i][j]=0; } cout<<'\n'; } } return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:77:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   77 |         if(n%2==1||m%2==1||k==n*m/4-1||n==m&&k==n/2+1||k>n*m/4||k<max(n/2,m/2))
      |                                        ~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...