Submission #465119

#TimeUsernameProblemLanguageResultExecution timeMemory
465119kilikumaAwesome Arrowland Adventure (eJOI19_adventure)C++14
50 / 100
3 ms588 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_ELEMENTS = 500*500; char laby[500][500]; struct Coords { int lig, col; }; bool cond =false; Coords cases[9][MAX_ELEMENTS]; Coords decal[4] = {{0, 1}, {1, 0}, {0, -1},{-1, 0}}; int nbLigs, nbCols; bool dans(int lig, int col) { if (lig<0||col<0||col>=nbCols||lig>=nbLigs) return false; else return true; } // int A int nbCases[9]; void ajouter(int distance, int lig, int col) { int pos = nbCases[distance]; cases[distance][pos].lig = lig; cases[distance][pos].col = col; nbCases[distance] ++; } int PPC() { int curDist = 0; int curCase; ajouter(0, 0, 0); while (true) { if (curDist > 500*500) return -1; nbCases[(curDist+9)%10] = 0; for (curCase = 0; curCase < nbCases[(curDist)%10]; curCase ++) { int curLig = cases[curDist%10][curCase].lig; int curCol = cases[curDist%10][curCase].col; // printf("%d %d\n",curLig, curCol); if ((curCol == nbCols-1) && (curLig == nbLigs-1)){ return curDist; } if (laby[curLig][curCol] == 'X') continue; int curPos; if (laby[curLig][curCol] == 'E') curPos = 0; if (laby[curLig][curCol] == 'S') curPos = 1; if (laby[curLig][curCol] == 'W') curPos = 2; if (laby[curLig][curCol] == 'N') curPos = 3; int adjDist = 0; for (int dir = 0; dir < 4; dir ++) { int ligAdj = curLig + decal[curPos].lig; int colAdj = curCol + decal[curPos].col; if (dans(ligAdj, colAdj) && ((laby[ligAdj][colAdj] != 'X') || ((ligAdj == nbLigs-1) && (colAdj == nbCols-1)))) { ajouter((adjDist+curDist)%10, ligAdj, colAdj); // if ((curLig == 1) && (curCol == 1)) // printf("%d %d %d\n", ligAdj, colAdj, adjDist); } curPos ++; curPos = curPos%4; adjDist ++; } laby[curLig][curCol] = 'X'; } curDist ++; } } int main() { cin >> nbLigs >> nbCols; for (int iLig = 0; iLig < nbLigs; iLig ++) { string S; cin >> S; for (int iCol = 0; iCol < nbCols; iCol ++) { laby[iLig][iCol] = S[iCol]; } } printf("%d\n", PPC()); }

Compilation message (stderr)

adventure.cpp: In function 'int PPC()':
adventure.cpp:58:16: warning: 'curPos' may be used uninitialized in this function [-Wmaybe-uninitialized]
   58 |         curPos ++;
      |         ~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...