Submission #570346

# Submission time Handle Problem Language Result Execution time Memory
570346 2022-05-29T09:21:58 Z urd05 Virus Experiment (JOI19_virus) C++17
14 / 100
58 ms 11508 KB
#include <bits/stdc++.h>
using namespace std;

int arr[800][800];
char str[200001];
int rdp[800][800];
int ldp[800][800];
int m,r,c;

int main() {
    scanf("%d %d %d",&m,&r,&c);
    scanf("%s",str);
    for(int i=0;i<r;i++) {
        for(int j=0;j<c;j++) {
            scanf("%d",&arr[i][j]);
        }
    }
    for(int i=m;i<m*2;i++) {
        str[i]=str[i-m];
    }
    int lmx=0;
    int rmx=0;
    int le=0;
    int ri=0;
    for(int i=0;i<m*2;i++) {
        if (str[i]=='E') {
            le++;
            ri=0;
        }
        else {
            ri++;
            le=0;
        }
        lmx=max(lmx,le);
        rmx=max(rmx,ri);
    }
    if (lmx==m*2) {
        lmx=1e9+7;
    }
    else if (rmx==m*2) {
        rmx=1e9+7;
    }
    for(int i=0;i<r;i++) {
        ldp[i][0]=0;
        for(int j=1;j<c;j++) {
            if (arr[i][j-1]!=0&&arr[i][j-1]<=lmx) {
                ldp[i][j]=ldp[i][j-1];
            }
            else {
                ldp[i][j]=j;
            }
        }
        rdp[i][c-1]=c-1;
        for(int j=c-2;j>=0;j--) {
            if (arr[i][j+1]!=0&&arr[i][j+1]<=rmx) {
                rdp[i][j]=rdp[i][j+1];
            }
            else {
                rdp[i][j]=j;
            }
        }
    }
    int cnt=0;
    int ret=1e9;
    for(int i=0;i<r;i++) {
        for(int j=0;j<c;j++) {
            if (arr[i][j]!=0) {
                int val=rdp[i][j]-ldp[i][j]+1;
                if (val<ret) {
                    cnt=1;
                    ret=val;
                }
                else if (val==ret) {
                    cnt++;
                }
            }
        }
    }
    printf("%d\n%d",ret,cnt);
    return 0;
}

Compilation message

virus.cpp: In function 'int main()':
virus.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     scanf("%d %d %d",&m,&r,&c);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
virus.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%s",str);
      |     ~~~~~^~~~~~~~~~
virus.cpp:15:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |             scanf("%d",&arr[i][j]);
      |             ~~~~~^~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 54 ms 7776 KB Output is correct
3 Correct 58 ms 7728 KB Output is correct
4 Correct 46 ms 9036 KB Output is correct
5 Correct 56 ms 11508 KB Output is correct
6 Correct 4 ms 7736 KB Output is correct
7 Correct 52 ms 9296 KB Output is correct
8 Correct 28 ms 6544 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 54 ms 7776 KB Output is correct
3 Correct 58 ms 7728 KB Output is correct
4 Correct 46 ms 9036 KB Output is correct
5 Correct 56 ms 11508 KB Output is correct
6 Correct 4 ms 7736 KB Output is correct
7 Correct 52 ms 9296 KB Output is correct
8 Correct 28 ms 6544 KB Output is correct
9 Incorrect 1 ms 340 KB Output isn't correct
10 Halted 0 ms 0 KB -