Compare commits

..

2 Commits

Author SHA1 Message Date
aa49da96bb started to work through errors 2024-12-09 17:56:10 +13:00
c172b4e1ef fixed crash 2024-12-09 16:26:21 +13:00
8 changed files with 28 additions and 7 deletions

6
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,6 @@
{
"files.associations": {
"iostream": "cpp",
"*.tcc": "cpp"
}
}

View File

@@ -1,3 +1,8 @@
64 63 64 66 66
51 49 50 53 59
86 87 88 90 92 93 93 90
3 5 8 8 10 14
20 23 25 25 25
81 83 84 85 87
87 90 92 95 96 93
12 15 16 17 17
@@ -9,9 +14,6 @@
60 63 65 63 65 69
70 73 76 79 77 78 84
25 27 29 32 35 35 36
86 87 88 90 92 93 93 90
20 23 25 25 25
3 5 8 8 10 14
3 4 7 9 12 12 14 20
72 75 79 80 82
5 7 11 14 15 18 15
@@ -25,9 +27,7 @@
13 16 17 24 26 28 34
16 14 17 20 21 23 26 28
30 28 30 32 34 36 33
64 63 64 66 66
27 25 27 29 31 34 38
51 49 50 53 59
20 18 19 22 20 22 25 28
25 23 24 26 28 25 22
11 10 11 8 9 10 10

View File

@@ -19,6 +19,7 @@ int main(){
string line;
int safeReports = 0;
stringstream wholeDoc;
int linesReadFromFile= 0;
ifstream puzzle("input.txt", ifstream::in);
@@ -30,6 +31,7 @@ int main(){
int number = stoi(numberString);
currentLevels.push_back(number);
}
linesReadFromFile++;
list<int> currentLevelsBackup = currentLevels;
int numOfLevelsProcessed = 0;
@@ -74,13 +76,19 @@ int main(){
dir = DOWN;
}
if(dir==UP&&changeFromPrevLevel.front()<0){
currentLevels.erase(currentLevels.begin());
levelGoDown.pop_front();
listDirty=true;
}
if (dir==UP&&levelGoDown.size()>1){ //if the overall direction goes up and more then 1 level go down the list is bad
currentLevels.clear();
} else if (dir==DOWN&&levelGoesUp.size()>1){ //same as above but opiosite dirrection
currentLevels.clear();
}
if (levelStaysSame.size()>1){ //cant have more then 1 number the same or the list is bad
if (levelStaysSame.size()>1||(listDirty&&levelStaysSame.size()==0)){ //cant have more then 1 number the same or the list is bad
currentLevels.clear();
}
@@ -91,6 +99,12 @@ int main(){
listDirty = true;
}
if(listDirty&&dir==DOWN&&levelGoesUp.size()>0){
currentLevels.clear();
} else if(listDirty&&dir==UP&&levelGoDown.size()>0){
currentLevels.clear();
}
if (!currentLevels.empty()){
if (dir==UP&&levelGoDown.size()==1){
list<int>::iterator itNumberToDelete = currentLevels.begin();
@@ -125,6 +139,7 @@ int main(){
}
}
cout << safeReports;
cout <<"lines read in: " << linesReadFromFile<<"\n";
cout <<"safe Reports: " << safeReports;
puzzle.close();
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.