QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#418478 | #3742. 卖萌表情 | ZayinCTT# | AC ✓ | 22ms | 4696kb | C++14 | 1.6kb | 2024-05-23 14:10:42 | 2024-05-23 14:10:42 |
Judging History
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