QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#815355#9884. Grid Constructionucup-team5234#WA 0ms3820kbC++232.6kb2024-12-15 13:24:182024-12-15 13:24:18

Judging History

This is the latest submission verdict.

  • [2024-12-15 13:24:18]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3820kb
  • [2024-12-15 13:24:18]
  • Submitted

answer

#include "bits/stdc++.h"

using namespace std;
#define rep(i, n) for(int i = 0; i < n; i ++)

void solve() {
    int h, w;
    cin >> h >> w;
    if(h != w) {
        cout << "No" << endl;
    } else if(h % 3 == 1) {
        cout << "No" << endl;
    } else if(h == 2) {
        cout << "Yes" << endl;
        cout << "<^" << endl;
        cout << "v>" << endl;
    } else if(h % 6 == 5 or h % 6 == 3) {
        cout << "Yes" << endl;
        int base = 0;
        vector<string> ans(h, string(w, '.'));
        while(h >= 6) {
            rep(i, w - 1) {
                ans[base][base + i] = '<';
                ans[h - 1 + base][w - 1 + base - i] = '>';
            }
            rep(i, h - 1) {
                ans[base + i][w - 1 + base] = '^'; 
                ans[h - 1 + base - i][base] = 'v';
            }
            for(int ii = 2; ii < w - 2; ii += 2) {
                int i = base + ii;
                ans[base + 1][i] = 'v';
                ans[i][base + 1] = '>';
                ans[h + base - 2][i] = '^';
                ans[i][w + base - 2] = '<';
            }
            for(int ii = 3; ii < w - 3; ii += 2) {
                int i = ii + base;
                ans[base + 2][i] = '^';
                ans[h + base - 3][i] = 'v';
                ans[i][base + 2] = '<';
                ans[i][w + base - 3] = '>';
            }
            base += 3;
            h -= 6;
            w -= 6;
        }
        

        if(h == 3) {
            ans[base][base] = '<';
            ans[base][base + 1] = '<';
            ans[base][base + 2] = '^';
            ans[base + 1][base + 2] = '^';
            ans[base + 2][base + 2] = '>';
            ans[base + 2][base + 1] = '>';
            ans[base + 2][base] = 'v';
            ans[base + 1][base] = 'v';
        } else if(h == 5) {
            rep(i, w - 1) {
                ans[base][base + i] = '<';
                ans[h - 1 + base][w - 1 + base - i] = '>';
            }
            rep(i, h - 1) {
                ans[base + i][w - 1 + base] = '^'; 
                ans[h - 1 + base - i][base] = 'v';
            }
            for(int ii = 2; ii < w - 2; ii += 2) {
                int i = base + ii;
                ans[base + 1][i] = 'v';
                ans[i][base + 1] = '>';
                ans[h + base - 2][i] = '^';
                ans[i][w + base - 2] = '<';
            }
        }
        for(string s : ans) {
            cout << s << endl;
        }
    } else cout << "No" << endl;
}
int main() {
    int t; t = 1;
    rep(i, t) solve();
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3608kb

input:

3 3

output:

Yes
<<^
v.^
v>>

result:

ok Correct

Test #2:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

4 4

output:

No

result:

ok Correct : No

Test #3:

score: 0
Accepted
time: 0ms
memory: 3532kb

input:

4 5

output:

No

result:

ok Correct : No

Test #4:

score: -100
Wrong Answer
time: 0ms
memory: 3572kb

input:

11 17

output:

No

result:

wrong answer Incorrect