Submission #733393

#TimeUsernameProblemLanguageResultExecution timeMemory
733393vjudge1Collecting Mushrooms (NOI18_collectmushrooms)C++17
60 / 100
2061 ms3208 KiB
#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 (stderr)

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 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...