#55666: c++暴力解


61247091s@gapps.ntnu.edu.tw (wei)


#include <bits/stdc++.h>
using namespace std;

int a[105][105];
int dino[105][105];
bool wake[105][105];

int main(){
    int r,c,d,k;
    cin>>r>>c>>d>>k;
    for (int i = 0; i < 105; i++) {
        fill(a[i], a[i] + 105, d);}
    memset(dino,0,sizeof(dino));
    int row,col;
    while(k--){
        cin>>row>>col;
        wake[row][col]=true;
        dino[row][col]++;
    }
    int event,hit_r,hit_c,lng,depth;
    cin>>event;
    while(event--){
        cin>>hit_r>>hit_c>>lng>>depth;
        bool dizzy=false;
        for(int i=hit_r-lng/2;i<=hit_r+lng/2;i++){
            if(i<0||i>=r)continue;
            for(int j=hit_c-lng/2;j<=hit_c+lng/2;j++){
                if(j<0||j>=c)continue;
                if(wake[i][j]){dizzy=true;break;}
        }
    }
        if(dizzy){
            for(int i=hit_r-lng/2;i<=hit_r+lng/2;i++){
            if(i<0||i>=r)continue;
            for(int j=hit_c-lng/2;j<=hit_c+lng/2;j++){
                if(j<0||j>=c)continue;
                wake[i][j]=false;
        }}}
        else {
            for(int i=hit_r-lng/2;i<=hit_r+lng/2;i++){
            if(i<0||i>=r)continue;
            for(int j=hit_c-lng/2;j<=hit_c+lng/2;j++){
                if(j<0||j>=c)continue;
                a[i][j]-=depth;
        }}

        }
}
    int maxi=-1e9,mini=1e9,total=0;
    for(int i=0;i<r;i++){
        for(int j=0;j<c;j++){
            if(a[i][j]>maxi)maxi=a[i][j];
            if(a[i][j]<mini)mini=a[i][j];
            if (wake[i][j]) total += dino[i][j];
        }
    }
    cout<<maxi<<" "<<mini<<" "<<total<<endl;


   
    return 0;
}