QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#418478#3742. 卖萌表情ZayinCTT#AC ✓22ms4696kbC++141.6kb2024-05-23 14:10:422024-05-23 14:10:42

Judging History

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

  • [2024-05-23 14:10:42]
  • 评测
  • 测评结果:AC
  • 用时:22ms
  • 内存:4696kb
  • [2024-05-23 14:10:42]
  • 提交

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(c, 0, 1) {
        fo(i, 1, n - 1) {
            cnt = 0;
            fo(j, 2, m - 1) {
                if(j % 2 == c)
                    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');
            }
            int f = 0;
            fo(j, 1, cnt) {
                if(f) f--;
                else if(valid[j]) ans++, f = 2;
            }
        }
    }
    fo(c, 0, 1) {
        fo(j, 1, m - 1) {
            cnt = 0;
            fo(i, 2, n - 1) {
                if(i % 2 == c)
                    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] == '>');
            }
            int f = 0;
            fo(i, 1, cnt) {
                if(f) f--;
                else if(valid[i]) ans++, f = 2;
            }
        }
    }
    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: 100
Accepted
time: 22ms
memory: 4696kb

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:

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

result:

ok 5051 numbers