Просмотр исходного кода

syntax fixxed logic needs fixing

Philipp 3 лет назад
Родитель
Сommit
01f421a494
1 измененных файлов с 36 добавлено и 22 удалено
  1. 36 22
      03/main.cpp

+ 36 - 22
03/main.cpp

@@ -44,44 +44,58 @@ void part2(){
 	}
 	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;
+    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++){
+        for (int 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'){
+    for(unsigned long long i = 0;i<sizeof(vals);i++){
+        for(int j=0;j<oxygenlist->size();j++){
+            if (oxygenlist->size() == 1){
+                continue;
+            }
+            if(vals[i] >= (lncnt / 2)){
+                if(oxygenlist->at(j).toStdString()[i] == '0'){
 					oxygenlist->removeAt(j);
-				}
-			}else{
-				if(oxygenlist->at(j).toStdString() == '1'){
-					oxygenlist->removeAt(j);
-				}
-				
-			}
+                }
+            }else{
+                if(oxygenlist->at(j).toStdString()[i] == '1'){
+                    oxygenlist->removeAt(j);
+                }
+            }
 		}
-		for(int j=0;j<colist.size();j++){
+        for(int j=0;j<co2list->size();j++){
+            if (co2list->size() == 1){
+                continue;
+            }
 			if(vals[i] < (lncnt / 2)){
-				if(co2list->at(j).toStdString() == '0'){
-					oxygenlist->removeAt(j);
-				}
-			}else{
-				if(co2list.at(j).toStdString() == '1'){
-					oxygenlist->removeAt(j);
+                if(co2list->at(j).toStdString()[i] == '0'){
+                    co2list->removeAt(j);
 				}
-			}
+            }else{
+                if(co2list->at(j).toStdString()[i] == '1'){
+                    co2list->removeAt(j);
+                }
+            }
 		}
 	}
+    int num1 = co2list->at(0).toInt(nullptr,2);
+    int num2 = oxygenlist->at(0).toInt(nullptr,2);
+
+    qDebug() << co2list->at(0);
+    qDebug() << num1;
+    qDebug() << oxygenlist->at(0);
+    qDebug() << num2;
+    qDebug() << num1 * num2;
 }
 
 int main(int argc, char **argv){