diff --git a/2/input.txt b/2/input.txt index 17e9073..b45580b 100644 --- a/2/input.txt +++ b/2/input.txt @@ -1,3 +1,4 @@ +81 83 84 85 87 87 90 92 95 96 93 12 15 16 17 17 26 27 29 31 34 36 40 @@ -994,7 +995,6 @@ 54 52 49 47 46 18 15 13 12 9 32 33 36 38 40 42 45 -81 83 84 85 87 73 70 69 66 65 62 60 58 89 91 92 93 94 96 97 58 56 55 52 49 48 45 43 diff --git a/2/puzzle2 b/2/puzzle2 index a0eea18..168e002 100755 Binary files a/2/puzzle2 and b/2/puzzle2 differ diff --git a/2/puzzle2.cpp b/2/puzzle2.cpp index 018eccb..ff29cb5 100644 --- a/2/puzzle2.cpp +++ b/2/puzzle2.cpp @@ -16,10 +16,13 @@ enum Direction { int main(){ string line; int safeReports = 0; + stringstream wholeDoc; ifstream puzzle("input.txt", ifstream::in); + wholeDoc << puzzle.rdbuf(); while (getline(puzzle, line)) { + cout << line<<"\n"; istringstream lineStream(line); string numberString; list currentLevels; @@ -36,23 +39,24 @@ int main(){ int prevlevel = currentLevels.front(); currentLevels.pop_front(); numOfLevelsProcessed++; - if (prevlevel - currentLevels.front()>0){ - dir = UP; - } else if (prevlevel - currentLevels.front()< 0){ + if (prevlevel < currentLevels.front()){ dir = DOWN; + } else if (prevlevel > currentLevels.front()){ + dir = UP; } else { break; } - for (int level = 0; !currentLevels.empty();level=currentLevels.front()){ + for (int level = currentLevels.front(); !currentLevels.empty();level=currentLevels.front()){ if (abs(prevlevel-level)>3) {currentLevels.clear();break;} - if(prevlevel-level==0){ currentLevels.clear();break;} - if(dir==UP&&(prevlevel-currentLevels.front())<0) {currentLevels.clear();break;} - if(dir==DOWN&&(prevlevel-currentLevels.front()>0)) {currentLevels.clear();break;} + if(prevlevel==level){ currentLevels.clear();break;} + if(dir==UP&&(prevlevelcurrentLevels.front())) {currentLevels.clear();break;} prevlevel=currentLevels.front(); currentLevels.pop_front(); + numOfLevelsProcessed++; if(numOfLevelsProcessed==numOfLevelsInLine){ safeReports++;