求助!暴力3WA2RE
查看原帖
求助!暴力3WA2RE
311210
H_sDc_N楼主2021/8/11 17:54

蒟蒻请问哪里错了,希望有大佬能帮个忙

#include <bits/stdc++.h>
using namespace std;
int main(){
  int n,m,k,sum;
  cin >> n >> m >> k;
  bool s[n + 1][n + 1];
  int o1,o2,p1,p2;
  for (int i = 1;i <= n;i++)
    for (int j = 1;j <=n;j++)
      s[i][j] = 0;
//o
  for (int i = 1;i <= m;i++){
    for (int j = 1;j <= m;j++){
      cin >> o1 >> o2;
      s[o1][o2] = 1;
      if ((o1 + 1) < n) s[o1 + 1][o2] = 1;
      if ((o1 + 2) < n) s[o1 + 2][o2] = 1;
      if ((o2 + 1) < n) s[o1][o2 + 1] = 1;
      if ((o2 + 2) < n) s[o1][o2 + 2] = 1;
      if ((o1 - 1) < n) s[o1 - 1][o2] = 1;
      if ((o1 - 2) < n) s[o1 - 2][o2] = 1;
      if ((o2 - 1) < n) s[o1][o2 - 1] = 1;
      if ((o2 - 2) < n) s[o1][o2 - 2] = 1;

      if (((o1 + 1) < n) && ((o2 + 1) < n)) s[o1 + 1][o2 + 1] = 1;
      if (((o1 + 1) < n) && ((o2 - 1) < n)) s[o1 + 1][o2 - 1] = 1;
      if (((o1 - 1) < n) && ((o2 + 1) < n)) s[o1 - 1][o2 + 1] = 1;
      if (((o1 - 1) < n) && ((o2 - 1) < n)) s[o1 - 1][o2 - 1] = 1;
    }
  }
  //p
  if (k != 0){
    for (int i = 1;i <= k;i++){
      for (int j = 1;j <= k;j++){
        cin >> p1 >> p2;
        s[p1][p2] = 1;
        if ((p1 + 1) < n) s[p1 + 1][p2] = 1;
        if ((p1 + 2) < n) s[p1 + 2][p2] = 1;
        if ((p2 + 1) < n) s[p1][p2 + 1] = 1;
        if ((p2 + 2) < n) s[p1][p2 + 2] = 1;
        if ((p1 - 1) < n) s[p1 - 1][p2] = 1;
        if ((p1 - 2) < n) s[p1 - 2][p2] = 1;
        if ((p2 - 1) < n) s[p1][p2 - 1] = 1;
        if ((p2 - 2) < n) s[p1][p2 - 2] = 1;

        if (((p1 + 1) < n) && ((p2 + 1) < n)) s[p1 + 1][p2 + 1] = 1;
        if (((p1 + 2) < n) && ((p2 + 2) < n)) s[p1 + 2][p2 + 2] = 1;
        if (((p1 + 1) < n) && ((p2 + 2) < n)) s[p1 + 1][p2 + 2] = 1;
        if (((p1 + 2) < n) && ((p2 + 1) < n)) s[p1 + 2][p2 + 1] = 1;

        if (((p1 - 1) < n) && ((p2 + 1) < n)) s[p1 - 1][p2 + 1] = 1;
        if (((p1 - 2) < n) && ((p2 + 1) < n)) s[p1 - 2][p2 + 1] = 1;
        if (((p1 - 1) < n) && ((p2 + 2) < n)) s[p1 - 1][p2 + 2] = 1;
        if (((p1 - 2) < n) && ((p2 + 2) < n)) s[p1 - 2][p2 + 2] = 1;

        if (((p1 - 1) < n) && ((p2 - 1) < n)) s[p1 - 1][p2 - 1] = 1;
        if (((p1 - 2) < n) && ((p2 - 1) < n)) s[p1 - 2][p2 - 1] = 1;
        if (((p1 - 1) < n) && ((p2 - 2) < n)) s[p1 - 1][p2 - 2] = 1;
        if (((p1 - 2) < n) && ((p2 - 2) < n)) s[p1 - 2][p2 - 2] = 1;

        if (((p1 + 1) < n) && ((p2 - 1) < n)) s[p1 + 1][p2 - 1] = 1;
        if (((p1 + 2) < n) && ((p2 - 1) < n)) s[p1 + 2][p2 - 1] = 1;
        if (((p1 + 1) < n) && ((p2 - 2) < n)) s[p1 + 1][p2 - 2] = 1;
        if (((p1 + 2) < n) && ((p2 - 2) < n)) s[p1 + 2][p2 - 2] = 1;
      }
    }
  }

  for (int i = 1;i <= n;i++)
    for (int j = 1;j <= n;j++)
      if (s[i][j] == 0) sum ++;
  cout << sum << "\n";

  return 0;
}

2021/8/11 17:54
加载中...