PROBLEM LINK:
Practice
Author: Yogesh Deolalkar
Tester: Ram Agrawal
Editorialist:Prathamesh Sogale
DIFFICULTY:
CAKEWALK, SIMPLE.
PREREQUISITES:
Greedy, Math
PROBLEM:
There is a grid of size 10^5×10^5, covered completely in railway tracks. Meena is riding in a train, currently in cell (a,b), and Vaibhav is tied up in a different cell (c,d), unable to move. The train has no breaks. It shall move exactly K steps, and then its fuel will run out and it shall stop. In one step, the train must move to one of its neighboring cells, sharing a side. Meena can’t move without the train, as the grid is covered in tracks. Can Meena reach Vaibhav’s cell after exactly K steps?
Note: Meena can go back to the same cell multiple times.
SOLUTIONS:
Setter's Solution
#include
#include <bits/stdc++.h>
#include
using namespace std;
using ll=long long;
int main() {
// your code goes here
ll t;
std::cin >> t;
while(t–){
ll a,b,c,d,k;
cin >>a>>b>>c>>d>>k;
ll x=abs(c-a);
ll y=abs(d-b);
ll z=x+y;
if(k>=z){
if(k%2==z%2){
std::cout << “YES” << std::endl;
}
else{
std::cout << “NO” << std::endl;
}
}
else{
std::cout << “NO” << std::endl;
}
}
return 0;
}
[details=“Tester’s Solution”]
#include
using namespace std;
int main(){
int t;
cin>>t;
while(t–){
int a,b,c,d,k;
cin>>a>>b>>c>>d>>k;
int min_1=0,min_2=0,max_1=0,max_2=0,sum=0;
if(a>=c){
min_1=c;
max_1=a;
}
else{
min_1=a;
max_1=c;
}
if(b>=d){
min_2=d;
max_2=b;
}
else{
min_2=b;
max_2=d;
}
sum=(max_1-min_1)+(max_2-min_2);
// cout<<sum<<endl;
if(sum==k){
cout<<“YES”<<endl;
}
else if(sum>k){
cout<<“NO”<<endl;
}
else{
if((k-sum)%2==0){
cout<<“YES”<<endl;
}
else{
cout<<“NO”<<endl;
}
}
}
}[/details]