In this HackerEarth Minimum moves problem solution, you want to reach a destination but you decide that you can make moves in two directions only. If you are at position (x, y), then you can move to (x + 1, y + 1) or (x + 1, y). You must start your journey from (0,0) and your destination is (X, Y). Your task is to find the minimum number of moves that you require to reach the destination or if he cannot reach the destination.


HackerEarth Minimum moves problem solution


HackerEarth Minimum moves problem solution.

#include<bits/stdc++.h>
using namespace std;
#define FIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define mod 1000000007
#define test ll t; cin>>t; while(t--)
typedef long long int ll;
int main() {
    FIO;
    test{
        ll x,y;
        cin>>x>>y;
        if(x<0 || y<0){
            cout<<-1<<endl;
        }
        else if(y>x){
            cout<<-1<<endl;
        }
        else{
            cout<<x<<endl;
        }
    }
  return 0;
}


second solution

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(){
    ios::sync_with_stdio(0), cin.tie(0);
    int t;
    cin >> t;
    while(t--){
        int x, y, a, b;
        cin >> a >> b;
        x = y = 0;
        cout << (x <= a && y <= b && b - y <= a - x ? a - x : -1) << '\n';
    }
}