|
|
@@ -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;
|
|
|
}
|
|
|
|