제출 #72244

#제출 시각아이디문제언어결과실행 시간메모리
72244Semteo For Ajou (#118)수중 미로 (FXCUP3_aqua)C++14
100 / 100
815 ms22888 KiB
#include <stdio.h> #include <algorithm> using namespace std; int map[901][901]; int x[5] = { 0,-1,0,1,0 }, y[5] = { 0,0,1,0,-1 }; int tx, ty, f, s, px[10000001], py[10000001]; char arr[10001]; int main() { int n,i,j,k,ex,ey; scanf("%d", &n); f = 1; s = 1; for (i = 1; i <= n; i++) { scanf("%s", arr); for (j = 0; j < n; j++) { if (arr[j] == 'M') { map[i][j + 1] = 0; px[f] = i; py[f] = j + 1; } else if (arr[j] == 'W') map[i][j + 1] = -1; else if (arr[j] == '.') map[i][j + 1] = 0; else if (arr[j] == 'H') { map[i][j + 1] = 0; ex = i; ey = j+1; } } } map[px[f]][py[f]] = 1; int flag,a=0; while (f <= s) { for (i = 1; i <= 4; i++) { flag = 0; a = 0; tx = px[f]; ty = py[f]; while (1) { tx += x[i]; ty += y[i]; if (tx<0 || ty<0 || tx>n || ty>n) break; if (map[tx][ty] == -1 && flag!=2) { flag = 1; a++; } if (map[tx][ty] != -1 && flag == 1) { flag = 2; } if (flag == 2) { if (map[tx][ty] == 0 || map[tx][ty] > a*a + map[px[f]][py[f]]) { map[tx][ty] = a * a + map[px[f]][py[f]]; s++; px[s] = tx; py[s] = ty; } } if (flag == 2 && map[tx][ty] == -1) break; } } f++; } /*for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { printf("%d ", map[i][j]); } printf("\n"); }*/ if (map[ex][ey] == 0) printf("%d", -1); else printf("%d", map[ex][ey]-1); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

aqua.cpp: In function 'int main()':
aqua.cpp:10:12: warning: unused variable 'k' [-Wunused-variable]
  int n,i,j,k,ex,ey;
            ^
aqua.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
aqua.cpp:18:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s", arr);
   ~~~~~^~~~~~~~~~~
aqua.cpp:89:16: warning: 'ey' may be used uninitialized in this function [-Wmaybe-uninitialized]
  if (map[ex][ey] == 0)
      ~~~~~~~~~~^
aqua.cpp:89:16: warning: 'ex' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...