답안 #668242

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
668242 2022-12-03T12:14:38 Z 600Mihnea Collecting Mushrooms (NOI18_collectmushrooms) C++17
60 / 100
2000 ms 3804 KB
#include <bits/stdc++.h>


using namespace std;

int main()
{
#ifdef ONPC
  freopen ("input.txt", "r", stdin);
#endif // ONPC

#ifndef ONPC
  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#endif // ONPC

  int n, m, r, need;
  cin >> n >> m >> r >> need;
  vector<pair<int, int>> mus, spr;
  for (int i = 0; i < n; i++)
  {
    string s;
    cin >> s;
    assert((int) s.size() == m);
    for (int j = 0; j < m; j++)
    {
      char ch = s[j];
      if (ch == '.')
      {
        continue;
      }
      if (ch == 'S')
      {
        spr.push_back({i, j});
        continue;
      }
      if (ch == 'M')
      {
        mus.push_back({i, j});
        continue;
      }
      assert(0);
    }
  }
  int sol = 0;
  sort(mus.begin(), mus.end());
  sort(spr.begin(), spr.end());
  int p1 = 0, p2 = 0;
  for (auto &it : mus)
  {
    while (p1 < (int) spr.size() && spr[p1].first <= it.first + r)
    {
      p1++;
    }
    while (p2 < (int) spr.size() && spr[p2].first < it.first - r)
    {
      p2++;
    }
    int cnt = 0;
    for (int j = p2; j < p1; j++)
    {
      int d = max(abs(spr[j].first - it.first), abs(spr[j].second - it.second));
      if (d <= r)
      {
        cnt++;
      }
    }
    sol += (cnt >= need);
  }
  cout << sol << "\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 21 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 21 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 18 ms 436 KB Output is correct
9 Correct 3 ms 340 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2065 ms 3804 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 21 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 18 ms 436 KB Output is correct
9 Correct 3 ms 340 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 1 ms 468 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Execution timed out 2065 ms 3804 KB Time limit exceeded
22 Halted 0 ms 0 KB -