Submission #733393

# Submission time Handle Problem Language Result Execution time Memory
733393 2023-04-30T16:15:46 Z vjudge1 Collecting Mushrooms (NOI18_collectmushrooms) C++17
60 / 100
2000 ms 3208 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ld long double
#define ll long long
#define S second
#define F first
 
using namespace __gnu_pbds;
using namespace std;
 
typedef tree<long long, null_type, less_equal<long long>,
    rb_tree_tag, tree_order_statistics_node_update> Tree;
 
const ll INF = 9223372036854775807LL;
const ll inf = 2147483647;
const ll MAXN = 200010;
const ll MOD = 1e9 + 7;
const ld PI = acos(-1);
const ll NROOT = 320;
 
ll binpow(ll a, ll b) {
  ll res = 1;
  for (;b; b /= 2, a *= a, a %= MOD)
    if (b & 1) res *= a, res %= MOD;
  return res % MOD;
}
 
ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a;}
ll lcm(ll a, ll b) {return a * b / gcd(a, b);}
ll invmod(ll a) {return binpow(a, MOD - 2);}

int32_t main () {
  ios_base::sync_with_stdio(false); 
  cin.tie(nullptr);

  int n, m, D, k; cin >> n >> m >> D >> k;

  vector<pair<int, int>> H, M;
  for (int i = 0; i < n; i ++) {
    for (int j = 0; j < m; j ++) {
      char c; cin >> c;
      if (c == 'M') 
        H.push_back({i, j});
      if (c == 'S') {
        M.push_back({i, j});
      }
    }
  }

  /*for (auto [x, y] : H) {
    cout << x << " " << y << "\n"; 
  } cout << "========\n";
  for (auto [x, y] : M) {
    cout << x << " " << y << "\n"; 
  } cout << "========\n";*/

  vector<int> cnt(H.size());
  for (int i = 0; i < H.size(); i ++) {
    for (int j = 0; j < M.size(); j ++) {
      if (abs(H[i].F - M[j].F) <= D && abs(H[i].S - M[j].S) <= D)
        cnt[i] ++;
    }
  }

  int ans = 0;
  for (int i = 0; i < H.size(); i ++) {
    if (cnt[i] >= k) ans ++;
  }
  
  cout << ans << "\n";

  return 0;
} 

Compilation message

mushrooms.cpp: In function 'int32_t main()':
mushrooms.cpp:59:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |   for (int i = 0; i < H.size(); i ++) {
      |                   ~~^~~~~~~~~~
mushrooms.cpp:60:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |     for (int j = 0; j < M.size(); j ++) {
      |                     ~~^~~~~~~~~~
mushrooms.cpp:67:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |   for (int i = 0; i < H.size(); i ++) {
      |                   ~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 26 ms 408 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 352 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 26 ms 408 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 352 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 16 ms 340 KB Output is correct
9 Correct 4 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 4 ms 392 KB Output is correct
3 Correct 7 ms 468 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 212 KB Output is correct
2 Correct 3 ms 212 KB Output is correct
3 Correct 5 ms 572 KB Output is correct
4 Correct 6 ms 468 KB Output is correct
5 Correct 4 ms 456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 2061 ms 3208 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 26 ms 408 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 352 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 16 ms 340 KB Output is correct
9 Correct 4 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 4 ms 392 KB Output is correct
13 Correct 7 ms 468 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 3 ms 212 KB Output is correct
17 Correct 3 ms 212 KB Output is correct
18 Correct 5 ms 572 KB Output is correct
19 Correct 6 ms 468 KB Output is correct
20 Correct 4 ms 456 KB Output is correct
21 Execution timed out 2061 ms 3208 KB Time limit exceeded
22 Halted 0 ms 0 KB -