ROBOGAME - Solution help

Can I know where’s my mistake? I think I’ve the same input and output with the example. This is my code


int inputNum;
std::vector<std::array> numberPosition;

bool check(std::string input){
		for(int i = 0; i < input.length(); i++){
				int index = input[i] - '0';
				//std::cout<<typeid(index).name()<<" "<<index<<std::endl;
				numberPosition.push_back({index, i});
		int min;
		int max = -10;
		for(auto numberMap: numberPosition){
			//std::cout<<max<<"|"<<numberMap[1]-numberMap[0]<= numberMap[1]-numberMap[0]){
				return false;
			min = numberMap[1]-numberMap[0];
			max = numberMap[1]+numberMap[0];
			//std::cout<<max<<" | "<<min<>inputNum;
		std::string input;
		std::string res = (check(input))?"safe":"unsafe";


Consider the case


Answer with your solution : unsafe

Correct solution : safe

The problem with your approach is initial value of max i.e., -10

As in above case when 0 was at index 12 (indexing starting from 0) then,

numberMap[1]-numberMap[0] = -12

now max would be greater than -12 hence it would give wrong answer.

1 Like