# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
871324 | vjudge1 | Collecting Mushrooms (NOI18_collectmushrooms) | C++14 | 98 ms | 193276 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define se second
#define faster ios_base::sync_with_stdio(0); cin.tie(0);
#define int long long
using namespace std;
using lli = long long;
using ld = long double;
using pii = pair <int, int>;
mt19937_64 Rand(chrono::steady_clock::now().time_since_epoch().count());
const int maxn = 1e6 + 1000;
const int maxm = 1e4 + 1000;
const int mod = 1e9 + 7;
lli n, m, k, d;
char s[maxm][maxm];
lli a[maxm][maxm];
void ReadInput()
{
cin >> m >> n >> d >> k;
for (lli i = 1; i <= m; i ++)
{
for (lli j = 1; j <= n; j ++)
{
cin >> s[i][j];
a[i][j] = a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
if (s[i][j] == 'S')
{
a[i][j] ++;
}
//cout << a[i][j] << endl;
}
}
}
void Solve()
{
lli cnt = 0;
for (lli i = 1; i <= m; i ++)
{
for (lli j = 1; j <= n; j ++)
{
if (s[i][j] == 'M')
{
lli x = i - d - 1;
if (x < 1) x = 0;
lli y = j - d - 1;
if (y < 1) y = 0;
lli u = i + d;
if (u > m) u = m;
lli v = j + d;
if (v > n) v = n;
//return;
lli sum = a[u][v] - a[u][y] - a[x][v] + a[x][y];
//cout << u << " " << v << " " << a[u][v] << " " << a[u][y] << " " << a[x][v] << " " << a[x][y] << " " << sum << endl;
//return;
if (sum >= k)
{
cnt ++;
}
}
}
}
cout << cnt;
}
#define debug
#define taskname "A"
signed main(){
faster
if (fopen(taskname".inp", "r")){
freopen(taskname".inp", "r", stdin);
freopen(taskname".out", "w", stdout);
}
int tt = 1;
//cin >> tt;
while (tt--){
ReadInput();
Solve();
}
if (fopen("timeout.txt", "r")){
ofstream timeout("timeout.txt");
timeout << signed(double(clock()) / CLOCKS_PER_SEC * 1000);
timeout.close();
#ifndef debug
cerr << "Time elapsed: " << signed(double(clock()) / CLOCKS_PER_SEC * 1000) << "ms\n";
#endif // debug
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |