correctly identifies safe lines
This commit is contained in:
parent
b4232c905d
commit
a5ce4e5803
3 changed files with 12 additions and 8 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
81 83 84 85 87
|
||||||
87 90 92 95 96 93
|
87 90 92 95 96 93
|
||||||
12 15 16 17 17
|
12 15 16 17 17
|
||||||
26 27 29 31 34 36 40
|
26 27 29 31 34 36 40
|
||||||
|
|
@ -994,7 +995,6 @@
|
||||||
54 52 49 47 46
|
54 52 49 47 46
|
||||||
18 15 13 12 9
|
18 15 13 12 9
|
||||||
32 33 36 38 40 42 45
|
32 33 36 38 40 42 45
|
||||||
81 83 84 85 87
|
|
||||||
73 70 69 66 65 62 60 58
|
73 70 69 66 65 62 60 58
|
||||||
89 91 92 93 94 96 97
|
89 91 92 93 94 96 97
|
||||||
58 56 55 52 49 48 45 43
|
58 56 55 52 49 48 45 43
|
||||||
|
|
|
||||||
BIN
2/puzzle2
BIN
2/puzzle2
Binary file not shown.
|
|
@ -16,10 +16,13 @@ enum Direction {
|
||||||
int main(){
|
int main(){
|
||||||
string line;
|
string line;
|
||||||
int safeReports = 0;
|
int safeReports = 0;
|
||||||
|
stringstream wholeDoc;
|
||||||
|
|
||||||
ifstream puzzle("input.txt", ifstream::in);
|
ifstream puzzle("input.txt", ifstream::in);
|
||||||
|
wholeDoc << puzzle.rdbuf();
|
||||||
|
|
||||||
while (getline(puzzle, line)) {
|
while (getline(puzzle, line)) {
|
||||||
|
cout << line<<"\n";
|
||||||
istringstream lineStream(line);
|
istringstream lineStream(line);
|
||||||
string numberString;
|
string numberString;
|
||||||
list<int> currentLevels;
|
list<int> currentLevels;
|
||||||
|
|
@ -36,23 +39,24 @@ int main(){
|
||||||
int prevlevel = currentLevels.front();
|
int prevlevel = currentLevels.front();
|
||||||
currentLevels.pop_front();
|
currentLevels.pop_front();
|
||||||
numOfLevelsProcessed++;
|
numOfLevelsProcessed++;
|
||||||
if (prevlevel - currentLevels.front()>0){
|
if (prevlevel < currentLevels.front()){
|
||||||
dir = UP;
|
|
||||||
} else if (prevlevel - currentLevels.front()< 0){
|
|
||||||
dir = DOWN;
|
dir = DOWN;
|
||||||
|
} else if (prevlevel > currentLevels.front()){
|
||||||
|
dir = UP;
|
||||||
} else {
|
} else {
|
||||||
break;
|
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 (abs(prevlevel-level)>3) {currentLevels.clear();break;}
|
||||||
if(prevlevel-level==0){ currentLevels.clear();break;}
|
if(prevlevel==level){ currentLevels.clear();break;}
|
||||||
if(dir==UP&&(prevlevel-currentLevels.front())<0) {currentLevels.clear();break;}
|
if(dir==UP&&(prevlevel<currentLevels.front())) {currentLevels.clear();break;}
|
||||||
if(dir==DOWN&&(prevlevel-currentLevels.front()>0)) {currentLevels.clear();break;}
|
if(dir==DOWN&&(prevlevel>currentLevels.front())) {currentLevels.clear();break;}
|
||||||
|
|
||||||
prevlevel=currentLevels.front();
|
prevlevel=currentLevels.front();
|
||||||
currentLevels.pop_front();
|
currentLevels.pop_front();
|
||||||
|
numOfLevelsProcessed++;
|
||||||
|
|
||||||
if(numOfLevelsProcessed==numOfLevelsInLine){
|
if(numOfLevelsProcessed==numOfLevelsInLine){
|
||||||
safeReports++;
|
safeReports++;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue