I am just a beginner in competitive programming and not familiar with C++ STL. I know only basics of vector STL(like push_back(),erase,basic traversing in vector,pop_back(),etc). I want to know how to solve Infinity Gauntlet without using map concept. I tried to solve without using map but in the custom test I am getting a runtime error. Please help and thanks in advance. Here is my code
#include<bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(NULL);ios_base::sync_with_stdio(false);
string color[]={"red","purple","green","blue","yellow","orange"},specific;
string stones[]={"Reality","Power","Time","Space","Mind","Soul"};
vector<string>missing;
missing.push_back("Reality");
missing.push_back("Power");
missing.push_back("Time");
missing.push_back("Space");
missing.push_back("Mind");
missing.push_back("Soul");
int i,n;
cin>>n;
while(n--)
{
cin>>specific;
for(i=0;i<6;i++)
{
if(color[i]==specific)
{
for(auto it2=missing.begin();it2!=missing.end();it2++)
{
if(*it2==stones[i])
missing.erase(it2);
}
}
}
}
cout<<6-n<<"\n";
for(auto it=missing.begin();it!=missing.end();it++)
{
cout<<*it<<"\n";
}
return 0;
}
my source: https://codeforces.net/contest/987/submission/75221461
Also, your code outputs 6 on every test, because n will be 0 after the while and 6-0=6.