I try to solve the problem 11629, but i'm getting WA and I can't discover my fault. Can you help me?
Code: Select all
#include <map>
#include <iostream>
#include <string>
#include <iterator>
#include <sstream>
using namespace std;
int main()
{
map<string,float> parties;
map<string,float>::iterator it;
string name, scoreS, line;
float score, to;
int p, g;
cin>>p>>g;
getline(cin,line);
// Reading and fetching parties names
for(int i=0 ; i<p ; i++)
{
getline(cin, name,' ');
getline(cin, scoreS);
istringstream iss(scoreS);
iss>>score;
parties.insert(pair<string,float>(name,score));
}
// reading and solving Guess
for(int i=1 ; i<=g ; i++)
{
// read the guess
getline(cin,line);
cout<<"Guess #"<<i<<" was ";
score = 0;
// parsing the guess
istringstream iss(line);
while(getline(iss,line,' '))
{
if(line.compare("<") == 0)
{
iss>>to;
if(score<to)
cout<<"correct."<<endl;
else
cout<<"incorrect."<<endl;
break;
}
else if(line.compare("<=") == 0)
{
iss>>to;
if(score<=to)
cout<<"correct."<<endl;
else
cout<<"incorrect."<<endl;
break;
}
else if(line.compare(">") == 0)
{
iss>>to;
if(score>to)
cout<<"correct."<<endl;
else
cout<<"incorrect."<<endl;
break;
}
else if(line.compare(">=") == 0)
{
iss>>to;
if(score>=to)
cout<<"correct."<<endl;
else
cout<<"incorrect."<<endl;
break;
}
else if(line.compare("=") == 0)
{
iss>>to;
if(score==to)
cout<<"correct."<<endl;
else
cout<<"incorrect."<<endl;
break;
}
else if(line.compare("+") != 0)
{
score += parties.find(line)->second;
}
}
}
return 0;
}