QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#418426#3742. 卖萌表情ZayinCTT#WA 20ms4880kbC++143.9kb2024-05-23 13:51:132024-05-23 13:51:13

Judging History

你现在查看的是最新测评结果

  • [2024-05-23 13:51:13]
  • 评测
  • 测评结果:WA
  • 用时:20ms
  • 内存:4880kb
  • [2024-05-23 13:51:13]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define fo(v,a,b) for(int v = a; v <= b; v++)
#define fr(v,a,b) for(int v = a; v >= b; v--)
#define cl(a,v) memset(a, v, sizeof(a))

const int N = 1010;

int n, m, ans; char s[N][N];
bool valid[N]; int cnt = 0;

int solve() {
    ans = 0;
    fo(i, 1, n - 1) {
        cnt = 0;
        fo(j, 2, m - 1) {
            if(j % 2 == 0)
                valid[++cnt] = (s[i][j - 1] == '^' &&
                s[i + 1][j] == 'v' && s[i][j + 1] == '^');
            else
                valid[++cnt] = (s[i + 1][j - 1] == 'v' &&
                s[i][j] == '^' && s[i + 1][j + 1] == 'v');
        }
        bool f = false;
        fo(j, 1, cnt) {
            if(f) f = false;
            else if(valid[j]) ans++, f = true;
        }
    }
    fo(i, 1, n - 1) {
        cnt = 0;
        fo(j, 2, m - 1) {
            if(j % 2 == 1)
                valid[++cnt] = (s[i][j - 1] == '^' &&
                s[i + 1][j] == 'v' && s[i][j + 1] == '^');
            else
                valid[++cnt] = (s[i + 1][j - 1] == 'v' &&
                s[i][j] == '^' && s[i + 1][j + 1] == 'v');
        }
        bool f = false;
        fo(j, 1, cnt) {
            if(f) f = false;
            else if(valid[j]) ans++, f = true;
        }
    }
    // fo(i, 1, n - 1) {
    //     cnt = 0;
    //     fo(j, 2, m - 1) if(j % 2 == 1)
    //         valid[++cnt] = (s[i + 1][j - 1] == 'v' &&
    //             s[i][j] == '^' && s[i + 1][j + 1] == 'v');
    //     bool f = false;
    //     fo(j, 1, cnt) {
    //         if(f) f = false;
    //         else if(valid[j]) ans++, f = true;
    //     }
    // }

    fo(j, 1, m - 1) {
        cnt = 0;
        fo(i, 2, n - 1) {
            if(i % 2 == 0)
                valid[++cnt] = (s[i - 1][j] == '<' &&
                s[i][j + 1] == '>' && s[i + 1][j] == '<');
            else
                valid[++cnt] = (s[i - 1][j + 1] == '>' &&
                s[i][j] == '<' && s[i + 1][j + 1] == '>');
        }
        bool f = false;
        fo(i, 1, cnt) {
            if(f) f = false;
            else if(valid[i]) ans++, f = true;
        }
    }
    fo(j, 1, m - 1) {
        cnt = 0;
        fo(i, 2, n - 1) {
            if(i % 2 == 1)
                valid[++cnt] = (s[i - 1][j] == '<' &&
                s[i][j + 1] == '>' && s[i + 1][j] == '<');
            else
                valid[++cnt] = (s[i - 1][j + 1] == '>' &&
                s[i][j] == '<' && s[i + 1][j + 1] == '>');
        }
        bool f = false;
        fo(i, 1, cnt) {
            if(f) f = false;
            else if(valid[i]) ans++, f = true;
        }
    }
    // fo(j, 1, m - 1) {
    //     cnt = 0;
    //     fo(i, 2, n - 1) if(i % 2 == 1)
    //         valid[++cnt] = (s[i - 1][j + 1] == '>' &&
    //         s[i][j] == '<' && s[i + 1][j + 1] == '>');
    //     bool f = false;
    //     fo(j, 1, cnt) {
    //         if(f) f = false;
    //         else if(valid[j]) ans++, f = true;
    //     }
    // }

    // fo(j, 1, m - 1) {
    //     fo(i, 1, n) valid[i] = false;
    //     fo(i, 2, n - 1) valid[i] = (s[i - 1][j] == '<' &&
    //         s[i][j + 1] == '>' && s[i + 1][j] == '<');
    //     bool f = false;
    //     fo(i, 2, n - 1) {
    //         if(f) f = false;
    //         else if(valid[j]) ans++, f = true;
    //     }
    // }
    // fo(j, 1, m - 1) {
    //     fo(i, 1, n) valid[i] = false;
    //     fo(i, 2, n - 1) valid[i] = (s[i - 1][j + 1] == '>' &&
    //         s[i][j] == '<' && s[i + 1][j + 1] == '>');
    //     bool f = false;
    //     fo(i, 2, n - 1) {
    //         if(f) f = false;
    //         else if(valid[j]) ans++, f = true;
    //     }
    // }
    return ans;
}

int main()
{
    while(scanf("%d%d", &n, &m) == 2) {
        fo(i, 1, n) scanf("%s", s[i] + 1);
        printf("%d\n", solve());
    }
    return 0;
}
/*
 
*/

详细

Test #1:

score: 0
Wrong Answer
time: 20ms
memory: 4880kb

input:

3 10
^>^<^^^^>^
<v^v^^v^v>
<>vvvvvvvv
10 1
v
^
<
<
v
<
v
>
<
<
5 4
<^^^
<vvv
<<^>
vv^v
<vvv
2 9
^^^^^^^^^
vvvvvvvvv
9 10
^>^^<^<^<>
<^<<><<<<>
v^v^^<>^<^
^<vvv<><<>
<v>>><^v^>
^^^^>^^<<v
v^v>v^v^<>
v^vvv>v^<^
vvvvv><>v>
8 8
^^^^<^<^
<>^<v>v^
<v<v>^v>
v>v<vv<>
^<^>>v<>
<v^v^<<>
^v^^>v<>
<vv<vv<>
2 2
...

output:

8
0
4
8
14
12
0
3
9
7
10
0
6
2
0
5
0
4
3
0
0
0
0
4
5
8
3
5
4
10
2
0
6
6
8
4
0
5
0
19
7
2
6
2
5
4
10
4
9
0
0
10
0
4
6
6
4
13
12
2
0
13
4
6
7
7
6
0
5
0
6
6
4
13
0
11
5
0
2
0
0
13
21
5
2
6
16
9
7
4
0
0
0
8
8
3
6
0
0
13
8
4
9
6
4
13
7
10
0
3
14
0
8
0
6
14
9
6
6
0
0
3
3
11
7
17
6
6
13
0
0
10
6
13
0
5
9
4...

result:

wrong answer 1st numbers differ - expected: '5', found: '8'