day 5 almost done

This commit is contained in:
grant-kun 2022-12-08 14:58:09 -06:00
parent 126e013036
commit fe5dc6b14a
1 changed files with 95 additions and 0 deletions

95
2022/day-5.cpp Normal file
View File

@ -0,0 +1,95 @@
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
int main(int argc, char* argv[]){
std::cout<<"paste input followed by a ; IGNORE THE NUMBER LINE!!\n";
std::vector<std::vector<char>> stack = {{}};
std::vector<std::vector<int>> moves;
int step = 0;
std::string line = "";
while(getline(std::cin, line)){
if(line==";")
break;
if(line=="")
step=1;
if(step==0){
//parsing initial boxes
for(int i = 0;i<=line.size();i+=4){
if(line[i+1]!=' '){
while(i/4>=stack.size()){
stack.push_back({});
}
stack[i/4].push_back(line[i+1]);
}
}
} else {
//command mode
if(line[0]!=' '){ //ignore the number line
std::string s1 = "";
int index = 0;
//moves.push_back({0,0,0});
std::vector<int> temp = {0,0,0};
std::vector<int> bu = temp;
for(int i = 0; i<=line.size();i++){
if(line[i]==' '){
for(int z = i+1; z!=line.size();z++){
if(line[z]==' ')
break;
s1+=line[z];
}
for(int z = 0; z!=temp.size();z++){
if(temp[z]==0){
temp[z]=stoi(s1);
break;
}
}
i+=s1.size()+1;
s1 = "";
}
}
if(temp!=bu )
moves.push_back(temp);
}
//std::cout<<s1;
}
}
std::cout<<std::endl;
for(int i = 0;i!=stack.size();i++){
//std::cout<<i+1;
for(int z = 0; z!=stack[i].size();z++){
std::cout<<stack[i][z];
}
std::cout<<std::endl;
}
for(int i = 0;i!=moves.size();i++){
//for(int z = 0; z!=moves[i].size();z++){
//std::cout<<stack[moves[i][1]-1][0];
for(int z = 0;z!=moves[i][0];z++){
stack[moves[i][2]-1].insert(stack[moves[i][2]-1].begin(),stack[moves[i][1]-1][0]);
//stack[moves[i][1]-1].erase(stack[moves[i][1]-1].begin());
std::cout<<stack[moves[i][1]-1][0];
}
std::cout<<std::endl;
//}
}
std::cout<<std::endl;
for(int i = 0;i!=stack.size();i++){
//std::cout<<i+1;
for(int z = 0; z!=stack[i].size();z++){
std::cout<<stack[i][z];
}
std::cout<<std::endl;
}
//std::cout<<moves.size();
return 0;
}