Submission #1067009

#TimeUsernameProblemLanguageResultExecution timeMemory
1067009heeewGardening (RMI21_gardening)C++14
100 / 100
17 ms5392 KiB
#include<iostream> #include<algorithm> #include<vector> using namespace std; using lint = long long; using vint = vector<int>; using pii = pair<int,int>; const int CUTLINE=4500; const int MAX_N=200010; vint ans; vint ns,ms; vector<vector<vint>> a; void sqr(int s,int e,int l,int r,int c) { for(int i=s;i<e;i++) for(int j=l;j<r;j++) a.back()[i][j]=c; } void fillmp(int s,int e,int l,int r,int c) { int n=(e-s)/2,m=(r-l)/2; while(c!=n*m) { if(c-1<=(n-1)*(m-1)-2 || c-1==(n-1)*(m-1)) { sqr(s,e,l,l+1,c); sqr(s,e,r-1,r,c); sqr(s,s+1,l,r,c); sqr(e-1,e,l,r,c); s++,e--,l++,r--,c--; } else if(n>m) { for(int j=0;j<m;j++) sqr(s,s+2,l+j*2,l+j*2+2,c--); s+=2; } else { for(int i=0;i<n;i++) sqr(s+i*2,s+i*2+2,l,l+2,c--); l+=2; } n=(e-s)/2,m=(r-l)/2; } for(int i=0;i<n;i++) for(int j=0;j<m;j++) sqr(s+i*2,s+i*2+2,l+j*2,l+j*2+2,c--); } int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int T; cin >> T; ans.resize(T); ns.resize(T); ms.resize(T); for(int t=0;t<T;t++) { int n,m,k; cin >> n >> m >> k; a.push_back({}); if(n%2 || m%2) continue; if(k>n*m/4 || k==n*m/4-1 || k<max(n,m)/2 || (n==m && k==n/2+1)) continue; ans[t]=1,ns[t]=n,ms[t]=m; a.back().resize(n); for(int i=0;i<n;i++) a.back()[i].resize(m); fillmp(0,n,0,m,k); } for(int t=0;t<T;t++) { if(!ans[t]) { cout << "NO\n"; continue; } cout << "YES\n"; int n=ns[t],m=ms[t]; for(int i=0;i<n;i++,cout << '\n') for(int j=0;j<m;j++) cout << a[t][i][j] << ' '; } return 0; }
#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...