Submission #426032

# Submission time Handle Problem Language Result Execution time Memory
426032 2021-06-13T13:07:35 Z Amylopectin Collecting Mushrooms (NOI18_collectmushrooms) C++14
100 / 100
11 ms 3736 KB
#include <iostream>
#include <stdio.h>
using namespace std;
const int mxn = 1e6 + 10;
char s[mxn] = {},sf[mxn] = {};
int qsu[mxn] = {};
int fimi(int l,int r)
{
    if(l < r)
        return l;
    return r;
}
int fima(int l,int r)
{
    if(l > r)
        return l;
    return r;
}
int main()
{
    int i,j,n,m,k,d,nl,nr,ml,mr,ans = 0;
    scanf("%d %d %d %d",&n,&m,&d,&k);
    for(i=0; i<n; i++)
    {
        scanf("%s",&sf);
//        scanf("%s",&(s)+i*m);
        for(j=0; j<m; j++)
        {
            s[i*m + j] = sf[j];
            if(s[i*m + j] == 'S')
            {
                nl = fima(0,i-d);
                nr = fimi(n,i+d+1);
                ml = fima(0,j-d);
                mr = fimi(m,j+d+1);
                qsu[nl*m+ml] ++;
                if(mr < m)
                    qsu[nl*m+mr] --;
                if(nr < n)
                    qsu[nr*m+ml] --;
                if(mr < m && nr < n)
                    qsu[nr*m+mr] ++;
            }
        }
    }
    for(i=1; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            qsu[i*m + j] += qsu[(i-1)*m + j];
        }
    }
    for(i=0; i<n; i++)
    {
        for(j=1; j<m; j++)
        {
            qsu[i*m + j] += qsu[i*m + j - 1];
        }
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            if(s[i*m + j] == 'M')
            {
                if(qsu[i*m+j] >= k)
                {
                    ans ++;
                }
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

Compilation message

mushrooms.cpp: In function 'int main()':
mushrooms.cpp:25:17: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'char (*)[1000010]' [-Wformat=]
   25 |         scanf("%s",&sf);
      |                ~^  ~~~
      |                 |  |
      |                 |  char (*)[1000010]
      |                 char*
mushrooms.cpp:22:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |     scanf("%d %d %d %d",&n,&m,&d,&k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
mushrooms.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |         scanf("%s",&sf);
      |         ~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 300 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 312 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1480 KB Output is correct
2 Correct 4 ms 1468 KB Output is correct
3 Correct 5 ms 1740 KB Output is correct
4 Correct 3 ms 1484 KB Output is correct
5 Correct 3 ms 1484 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 3644 KB Output is correct
2 Correct 6 ms 3660 KB Output is correct
3 Correct 8 ms 3660 KB Output is correct
4 Correct 8 ms 3736 KB Output is correct
5 Correct 8 ms 3660 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 300 KB Output is correct
12 Correct 1 ms 332 KB Output is correct
13 Correct 1 ms 332 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 312 KB Output is correct
16 Correct 3 ms 1480 KB Output is correct
17 Correct 4 ms 1468 KB Output is correct
18 Correct 5 ms 1740 KB Output is correct
19 Correct 3 ms 1484 KB Output is correct
20 Correct 3 ms 1484 KB Output is correct
21 Correct 9 ms 3644 KB Output is correct
22 Correct 6 ms 3660 KB Output is correct
23 Correct 8 ms 3660 KB Output is correct
24 Correct 8 ms 3736 KB Output is correct
25 Correct 8 ms 3660 KB Output is correct
26 Correct 9 ms 3020 KB Output is correct
27 Correct 8 ms 3148 KB Output is correct
28 Correct 8 ms 3148 KB Output is correct
29 Correct 9 ms 3148 KB Output is correct
30 Correct 11 ms 3148 KB Output is correct