답안 #916430

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
916430 2024-01-25T21:29:54 Z svaz Patkice (COCI20_patkice) C++14
30 / 50
1 ms 600 KB
#include<bits/stdc++.h>
using namespace std;
int main(){
    int r,s,inx,iny;
    cin>>r>>s;
    char matriz[r][s];
    for(int i=0;i<r;i++){
        for(int j=0;j<s;j++){
            cin>>matriz[i][j];
            if(matriz[i][j]=='o'){
                inx=i;
                iny=j;
            }
        }
    }
    int x,y,cp=0,ans=(r*s)+1;
    char opt='Z';
    x=inx;
    y=iny-1;
    while(matriz[x][y]!='.' && matriz[x][y]!='x' && matriz[x][y]!='o' && x>=0 && x<r && y>=0 && y<s){
        cp++;
        if(matriz[x][y]=='>')y++;
        if(matriz[x][y]=='<')y--;
        if(matriz[x][y]=='^')x--;
        if(matriz[x][y]=='v')x++;
    }
    if(x>=0 && x<r && y>=0 && y<s){
        if(matriz[x][y]=='x'){
            if(cp<ans){
                ans=cp;
                opt='W';
            }
            if(cp==ans){
                opt=min(opt,'W');
            }
        }
    }
    x=inx-1;
    y=iny;
    cp=0;
    while(matriz[x][y]!='.' && matriz[x][y]!='x' && matriz[x][y]!='o' && x>=0 && x<r && y>=0 && y<s){
        cp++;
        if(matriz[x][y]=='>')y++;
        if(matriz[x][y]=='<')y--;
        if(matriz[x][y]=='^')x--;
        if(matriz[x][y]=='v')x++;
    }
    if(x>=0 && x<r && y>=0 && y<s){
        if(matriz[x][y]=='x'){
            if(cp<ans){
                ans=cp;
                opt='N';
            }
            if(cp==ans){
                opt=min(opt,'N');
            }
        }
    }
    x=inx;
    y=iny+1;
    cp=0;
    while(matriz[x][y]!='.' && matriz[x][y]!='x' && matriz[x][y]!='o' && x>=0 && x<r && y>=0 && y<s){
        cp++;
        if(matriz[x][y]=='>')y++;
        if(matriz[x][y]=='<')y--;
        if(matriz[x][y]=='^')x--;
        if(matriz[x][y]=='v')x++;
    }
    if(x>=0 && x<r && y>=0 && y<s){
        if(matriz[x][y]=='x'){
            if(cp<ans){
                ans=cp;
                opt='E';
            }
            if(cp==ans){
                opt=min(opt,'E');
            }
        }
    }
    x=inx+1;
    y=iny;
    cp=0;
    while(matriz[x][y]!='.' && matriz[x][y]!='x' && matriz[x][y]!='o' && x>=0 && x<r && y>=0 && y<s){
        cp++;
        if(matriz[x][y]=='>')y++;
        if(matriz[x][y]=='<')y--;
        if(matriz[x][y]=='^')x--;
        if(matriz[x][y]=='v')x++;
    }
    if(x>=0 && x<r && y>=0 && y<s){
        if(matriz[x][y]=='x'){
            if(cp<ans){
                ans=cp;
                opt='S';
            }
            if(cp==ans){
                opt=min(opt,'S');
            }
        }
    }
    if(opt=='Z')cout<<":(\n";
    else{
      cout<<":)\n";
      cout<<opt<<"\n";
    }
    return 0;
}

Compilation message

patkice.cpp: In function 'int main()':
patkice.cpp:62:22: warning: 'inx' may be used uninitialized in this function [-Wmaybe-uninitialized]
   62 |     while(matriz[x][y]!='.' && matriz[x][y]!='x' && matriz[x][y]!='o' && x>=0 && x<r && y>=0 && y<s){
      |           ~~~~~~~~~~~^
patkice.cpp:60:6: warning: 'iny' may be used uninitialized in this function [-Wmaybe-uninitialized]
   60 |     y=iny+1;
      |     ~^~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 440 KB Output is correct
2 Correct 0 ms 444 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 600 KB Output is correct
11 Incorrect 1 ms 344 KB Output isn't correct
12 Halted 0 ms 0 KB -