WA * 9。已魔怔。
严重怀疑是不是题读错了。
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
int x, y, tx, ty;
int n, m, l;
pair<char, int> a[100010];
pair<char, int> b[100010];
int z;
int t1 = 1, t2 = 1;
void walk(char c, int &x, int &y, int k)
{
if (c == 'U')
x -= k;
if (c == 'D')
x += k;
if (c == 'L')
y -= k;
if (c == 'R')
y += k;
}
void work(char c1, int k, char c2)
{
if (c1 == c2)
{
if (x == tx && y == ty)
{
z += k;
}
}
else
{
if (c1 == 'U')
{
if (tx < x)
{
if (c2 == 'D')
{
if (y == ty && abs(x - tx) % 2 == 0 && abs(x - tx) / 2 <= k)
z++;
}
if (c2 == 'R')
{
if (x - y == tx - ty && abs(x - tx) <= k)
z++;
}
if (c2 == 'L')
{
if (x + y == tx + ty && abs(x - tx) <= k)
z++;
}
}
}
if (c1 == 'D')
{
if (tx > x)
{
if (c2 == 'U')
{
if (y == ty && abs(x - tx) % 2 == 0 && abs(x - tx) / 2 <= k)
z++;
}
if (c2 == 'R')
{
if (x + y == tx + ty && abs(x - tx) <= k)
z++;
}
if (c2 == 'L')
{
if (x - y == tx - ty && abs(x - tx) <= k)
z++;
}
}
}
if (c1 == 'L')
{
if (ty < y)
{
if (c2 == 'R')
{
if (x == tx && abs(y - ty) % 2 == 0 && abs(y - ty) / 2 <= k)
z++;
}
if (c2 == 'U')
{
if (x + y == tx + ty && abs(x - tx) <= k)
z++;
}
if (c2 = 'D')
{
if (x - y == tx - ty && abs(x - tx) <= k)
z++;
}
}
}
if (c1 == 'R')
{
if (ty > y)
{
if (c2 == 'L')
{
if (x == tx && abs(y - ty) % 2 == 0 && abs(y - ty) / 2 <= k)
z++;
}
if (c2 == 'D')
{
if (x + y == tx + ty && abs(x - tx) <= k)
z++;
}
if (c2 == 'U')
{
if (x - y == tx - ty && abs(x - tx) <= k)
z++;
}
}
}
}
}
main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> x >> y >> tx >> ty;
cin >> n >> m >> l;
for (int i = 1; i <= m; i++)
{
cin >> a[i].first >> a[i].second;
}
for (int i = 1; i <= l; i++)
{
cin >> b[i].first >> b[i].second;
}
// int t1 = 1, t2 = 1;
// int z = 0;
while (t1 <= m && t2 <= l)
{
int xx = min(a[t1].second, b[t2].second);
char c1 = a[t1].first;
char c2 = b[t2].first;
work(c1, xx, c2);
walk(c1, x, y, xx);
walk(c2, tx, ty, xx);
a[t1].second -= xx;
if (a[t1].second == 0)
t1++;
b[t2].second -= xx;
if (b[t2].second == 0)
t2++;
// cout << x << " " << y << " " << tx << " " << ty << "\n";
}
cout << z;
return 0;
}