/******************************************* Problem - Balloon Collecting Solution By - Sean Falconer *******************************************/ #include #include #include using namespace std; void eatwhite(istream & cin) { while(cin.peek() == '\n' || cin.peek() == '\r' || cin.peek() == '\t' || cin.peek() == ' ') cin.get(); } int main() { while(!cin.eof() && cin.peek() != -1) { int num; vector balloons; while(cin >> num) { if(num == -1) break; balloons.push_back(num); } eatwhite(cin); int i; vector solution(balloons.size(), 0); for(i = 0; i < balloons.size(); i++) { solution[i] = 1; for(int j = i-1; j >= 0; j--) { if(balloons[i] < balloons[j]) solution[i] = max(solution[i], solution[j]+1); } } int maxCaught = INT_MIN; for(i = 0; i < solution.size(); i++) { if(maxCaught < solution[i]) maxCaught = solution[i]; } cout << "The maximum number of balloons possible to catch is: " << maxCaught << endl; } return 0; }