제출 #224779

#제출 시각아이디문제언어결과실행 시간메모리
224779NightlightCollecting Mushrooms (NOI18_collectmushrooms)C++14
38 / 100
57 ms7952 KiB
#include <bits/stdc++.h>
#define pii pair<int, int>
#define x first
#define y second
using namespace std;
 
int R, C, D, K, P, ans;
vector<vector<int>> pre;
pii mus[500005];
char t;
 
int getsum(int x,int y) {
  int y1 = min(y + D, C), y0 = max(y - D - 1, 0);
  int x1 = min(x + D, R), x0 = max(x - D - 1, 0);
  return pre[x1][y1] - pre[x1][y0] - pre[x0][y1] - pre[x0][y0];
}
 
int main() {
//  freopen("inp", "r", stdin);
  scanf("%d %d %d %d", &R, &C, &D, &K);
  pre.resize(R + 5);
  pre[0].resize(C + 5);
  getchar();
  for(int i = 1; i <= R; i++) {
    pre[i].resize(C + 5);
    for(int j = 1; j <= C; j++) {
      pre[i][j] = pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1];
      cin >> t;
      if(t == 'M') {
        mus[++P] = {i, j};
      }else if(t == 'S') {
        pre[i][j]++;
      }
    }
  }
  for(int i = 1; i <= P; i++) {
    if(getsum(mus[i].x, mus[i].y) >= K) ans++;
  }
  printf("%d\n", ans);
}

컴파일 시 표준 에러 (stderr) 메시지

mushrooms.cpp: In function 'int main()':
mushrooms.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d %d", &R, &C, &D, &K);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...