QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#397510 | #3742. 卖萌表情 | SamponYW | AC ✓ | 15ms | 5936kb | C++14 | 2.2kb | 2024-04-24 11:12:11 | 2024-04-24 11:12:12 |
Judging History
answer
#include <bits/stdc++.h>
#define db double
#define il inline
#define re register
#define ll long long
#define ui unsigned
#define ull ui ll
#define i128 __int128
#define pii pair<int, int>
#define fi first
#define se second
#define eb emplace_back
#define SZ(v) (int)v.size()
#define ALL(v) v.begin(), v.end()
#define mems(v, x) memset(v, x, sizeof(v))
#define memc(a, b) memcpy(a, b, sizeof(a))
#define FOR(i, L, R) for(re int i = (L); i <= (R); ++i)
#define ROF(i, R, L) for(re int i = (R); i >= (L); --i)
#define LS i << 1, l, mid
#define RS i << 1 | 1, mid + 1, r
#define popc(x) __builtin_popcount(x)
using namespace std;
#define N 1005
#define P 1000000007
il int add(int x, int y) {return x + y < P ? x + y : x + y - P;}
il void addr(int &x, int y) {(x += y) >= P && (x -= P);}
il int qpow(int p, int n = P - 2) {
int s = 1;
while(n) {
if(n & 1) s = 1ll * s * p % P;
p = 1ll * p * p % P, n >>= 1;
}
return s;
}
int n, m; string str[N];
bool u[N][N];
il void WORK() {
FOR(i, 1, n) cin >> str[i], str[i] = " " + str[i];
FOR(i, 1, n) FOR(j, 1, m) u[i][j] = 0; int ans = 0;
FOR(i, 1, n) FOR(j, 1, m) {
if(j > 1 && j < m && i < n && str[i][j - 1] == '^' && str[i][j + 1] == '^' && str[i + 1][j] == 'v' && !u[i][j - 1] && !u[i][j + 1] && !u[i + 1][j])
u[i][j - 1] = u[i][j + 1] = u[i + 1][j] = 1, ++ans;
if(j > 1 && j < m && i < n && str[i + 1][j - 1] == 'v' && str[i + 1][j + 1] == 'v' && str[i][j] == '^' && !u[i + 1][j - 1] && !u[i + 1][j + 1] && !u[i][j])
u[i + 1][j - 1] = u[i + 1][j + 1] = u[i][j] = 1, ++ans;
if(i > 1 && i < n && j < m && str[i - 1][j] == '<' && str[i + 1][j] == '<' && str[i][j + 1] == '>' && !u[i - 1][j] && !u[i + 1][j] && !u[i][j + 1])
u[i - 1][j] = u[i + 1][j] = u[i][j + 1] = 1, ++ans;
if(i > 1 && i < n && j < m && str[i - 1][j + 1] == '>' && str[i + 1][j + 1] == '>' && str[i][j] == '<' && !u[i - 1][j + 1] && !u[i + 1][j + 1] && !u[i][j])
u[i - 1][j + 1] = u[i + 1][j + 1] = u[i][j] = 1, ++ans;
}
cout << ans << "\n";
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
while(cin >> n >> m) WORK();
cerr << 1.0 * clock() / CLOCKS_PER_SEC;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 15ms
memory: 5936kb
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