#include<bits/stdc++.h>
using namespace std;
short mp[3050][3050];
bool st[3050][3050];
const int lake=-2,near_lake=0,t=-1,tree=1;
int n,m,q,r,k;
#define In(x,y) (x>0 and x<=n and y>0 and y<=m)
#define PT(x,y,x1,y1) (x==x1 and y==y1)
#define endl '\n'
const int dirx[]= {0,0,1,-1},diry[]= {1,-1,0,0};
const int BIG_DIR_X[]= {-2,-1,-1,-1, 0, 0, 0, 0, 1, 1, 1, 2};
const int BIG_DIR_Y[]= { 0,-1, 0, 1,-2,-1, 1, 2,-1, 0, 1, 0};
struct T {
int t,x,y;
T() {
}
T(int _t,int _x,int _y) {
t=_t;
x=_x;
y=_y;
}
};
vector<T>v;
vector<bool>sv;
struct node {
int x,y;
node() {
}
node(int _x,int _y) {
x=_x;
y=_y;
}
};
queue<node>que;
void bfs() {
while(!que.empty()) {
node u=que.front();
que.pop();
int x=u.x,y=u.y;
for(int i=0; i<=3; i++) {
int dx=x+dirx[i],dy=y+diry[i];
if(st[dx][dy] and mp[dx][dy]!=tree) {
que.push({dx,dy});
mp[dx][dy]=tree;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cout.tie(0);
cin.tie(0);
cin>>n>>m>>q>>r>>k;
memset(mp,t,sizeof(mp));
while(q--) {
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
for(int i=x1; i<=x2; i++)
for(int j=y1; j<=y2; j++)
if(In(i,j)) {
mp[i][j]=lake;
}
}
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(mp[i][j]==lake)
for(int k=0; k<=11; k++) {
int dx=i+BIG_DIR_X[k],dy=j+BIG_DIR_Y[k];
if(In(dx,dy) and mp[dx][dy]!=lake)mp[dx][dy]=near_lake;
}
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(mp[i][j]==lake)
for(int k=0; k<=3; k++) {
int dx=i+dirx[k],dy=j+diry[k];
if(In(dx,dy) and mp[dx][dy]!=lake)st[dx][dy]=1;
}
while(r--) {
int t,x,y;
cin>>t>>x>>y;
if(mp[x][y]==near_lake) {
mp[x][y]=tree;
que.push(node(x,y));
} else v.push_back(T(t,x,y));
}
bfs();
sv.resize(v.size(),0);
for(int i=0; i<v.size(); i++) {
bool flag=0;
if(sv[i]) {
flag=1;
} else
for(int j=i+1; j<v.size(); j++) {
if(v[j].t-v[i].t>k)break;
else {
if(abs(v[i].x-v[j].x)<=1 and abs(v[i].y-v[j].y)<=1
and abs(v[i].x-v[j].x)+abs(v[i].y-v[j].y)==1) {
flag=1;
sv[j]=1;
}
}
}
if(flag) {
mp[v[i].x][v[i].y]=tree;
}
}
int cnt=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(mp[i][j]==tree)
++cnt;
cout<<cnt;
return 0;
}
1~7、8WA
11、12AC
其余TLE
样例已过