浏览代码

03 part2 borked beyond repair

Phil 3 年之前
父节点
当前提交
c02877e5a5
共有 2 个文件被更改,包括 47 次插入1 次删除
  1. 46 1
      03/main.cpp
  2. 1 0
      03/main.h

+ 46 - 1
03/main.cpp

@@ -37,10 +37,55 @@ void part1(){
 }
 
 void part2(){
+	QFile input("input.txt");
+	QTextStream strm(&input);
+	if(!input.open(QIODevice::ReadOnly | QIODevice::Text)){
+		qDebug() << "file borked";
+	}
+	int vals[] = {0,0,0,0,0,0,0,0,0,0,0,0};
+	int lncnt = 0;
+	QStringList oxygenlist = new QStringList;
+	QStringList co2list = new QStringList;
+	QString line = "";
+	while(!strm.atEnd()){
+		line = strm.readLine();
+		oxygenlist->append(line);
+		co2list->append(line);
+		lncnt++;
+		for (i=0;i<12;i++){
+			vals[i] += (line.toStdString()[i]-'0');
+		}
+	}
+		
+	for(int i = 0;i<vals.length();i++){
+		for(int j=0;j<oxygenlist->size();j++){
+			if(vals[i] >= (lncnt / 2)){
+				if(oxygenlist->at(j).toStdString() == '0'){
+					oxygenlist->removeAt(j);
+				}
+			}else{
+				if(oxygenlist->at(j).toStdString() == '1'){
+					oxygenlist->removeAt(j);
+				}
+				
+			}
+		}
+		for(int j=0;j<colist.size();j++){
+			if(vals[i] < (lncnt / 2)){
+				if(co2list->at(j).toStdString() == '0'){
+					oxygenlist->removeAt(j);
+				}
+			}else{
+				if(co2list.at(j).toStdString() == '1'){
+					oxygenlist->removeAt(j);
+				}
+			}
+		}
+	}
 }
 
 int main(int argc, char **argv){
-	part1();
+	part2();
 	return 0;
 }
 

+ 1 - 0
03/main.h

@@ -2,6 +2,7 @@
 #include <QFile>
 #include <QTextStream>
 #include <QByteArray>
+#include <QStringList>
 
 int main(int argc, char **argv);
 void part1();