感觉思路没错,咋就超了呢
#include <bits/stdc++.h>
#pragma GCC optimize(2) //甚至氧气
using namespace std;
int main(){
int n,m,k;
cin >> n >> m >> k;
bool a[n][m];
memset(a,0,sizeof(a));
for(int i = 1;i <= k;i++){
int tmp,tmp1;
cin >> tmp >> tmp1;
for(int i = 1;i <= n;i++){
if(i <= n)a[i][tmp1] = 1;
if(i <= m)a[tmp][i] = 1;
if((tmp-i) >= 1 || (tmp1+i) <= m)a[tmp-i][tmp1+i] = 1;
if((tmp+i) <= n || (tmp1+i) <= m)a[tmp+i][tmp1+i] = 1;
if((tmp+i) <= n || (tmp1-i) >= 1)a[tmp+i][tmp1-i] = 1;
if((tmp-i) >= 1 || (tmp1-i) >= 1)a[tmp-i][tmp1-i] = 1; //把行列叉全部标点
}
}
int sum = 0;
for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(a[i][j] == 0){sum++;}}}
cout << sum << endl; //sum计算值
return 0;
}