Submission #1112799

# Submission time Handle Problem Language Result Execution time Memory
1112799 2024-11-14T21:16:37 Z snpmrnhlol Gardening (RMI21_gardening) C++17
5 / 100
14 ms 848 KB
#include<bits/stdc++.h>
using namespace std;
vector <vector<int>> ans;
bool check(int n, int m, int k){
    ///checks if (n, m, k) is true
    ///works for like 99% of cases
    ///(i hope)
    if(n > m)swap(n, m);
    if(n%2 == 1 || m%2 == 1)return 0;
    if(n == m && k == n/2 + 1)return 0;
    ///i sense a pattern and so i bullshit
    int l = max(n, m)/2, r = n*m/4;
    return l <= k && k <= r;
}
int colcnt;
void constructsol(int n, int m, int k, int dx, int dy){
    if(n == 0 || m == 0)return;
    if(!check(n, m, k))return;
    ///idk what to do lol
    ///im trying like 3 cases
    if(check(n, m - 2, k - n/2)){
        constructsol(n, m - 2, k - n/2, dx, dy);
        for(int i = 0;i < n;i+=2){
            ans[i + dx][m - 2 + dy] = colcnt;
            ans[i + dx][m - 1 + dy] = colcnt;
            ans[i + 1 + dx][m - 2 + dy] = colcnt;
            ans[i + 1 + dx][m - 1 + dy] = colcnt;
            colcnt++;
        }
    }else if(check(n - 2, m, k - m/2)){
        constructsol(n - 2, m, k - m/2, dx, dy);
        for(int j = 0;j < m;j+=2){
            ans[n - 2 + dx][j + dy] = colcnt;
            ans[n - 2 + dx][j + 1 + dy] = colcnt;
            ans[n - 1 + dx][j + dy] = colcnt;
            ans[n - 1 + dx][j + 1 + dy] = colcnt;
            colcnt++;
        }
    }else if(check(n - 2, m - 2, k - 1)){
        constructsol(n - 2, m - 2, k - 1, dx + 1, dy + 1);
        for(int i = 0;i < n;i++){
            ans[i + dx][0 + dy] = colcnt;
            ans[i + dx][m - 1 + dy] = colcnt;
        }
        for(int i = 0;i < m;i++){
            ans[0 + dx][i + dy] = colcnt;
            ans[n - 1 + dx][i + dy] = colcnt;
        }
        colcnt++;
    }
}
void solve(){
    int n, m, k;
    cin>>n>>m>>k;
    ///I REALLY HATE MY LIFE
    ans.assign(n, vector<int>(m, 0));
    colcnt = 1;
    if(check(n, m, k)){
        cout<<"YES\n";
        constructsol(n, m, k, 0, 0);
        for(int i = 0;i < n;i++){
            for(int j = 0;j < m;j++){
                cout<<ans[i][j]<<' ';
            }
            cout<<'\n';
        }
    }else{
        cout<<"NO\n";
    }
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--)solve();
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 14 ms 848 KB Correct! Azusa and Laika like the garden :)
# Verdict Execution time Memory Grader output
1 Correct 14 ms 848 KB Correct! Azusa and Laika like the garden :)
2 Failed 8 ms 592 KB Incorrect output
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 14 ms 848 KB Correct! Azusa and Laika like the garden :)
2 Failed 8 ms 592 KB Incorrect output
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Failed 7 ms 720 KB Incorrect output
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Failed 3 ms 592 KB Incorrect output
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 14 ms 848 KB Correct! Azusa and Laika like the garden :)
2 Failed 8 ms 592 KB Incorrect output
3 Halted 0 ms 0 KB -