You are on page 1of 2

//vaccum cleaner java code

public class AutomaticVacuumCleaner {


public long getDistance(long R, long C, long A, long B) {
long aR = (A - 1) / C;
long bR = (A + B - 1) / C;
long aC = (A - 1) % C;
long bC = (A + B - 1) % C;

if (aR % 2 == 1) {
aC = C - 1 - aC;
}
if (bR % 2 == 1) {
bC = C - 1 - bC;
}

return Math.abs(bR - aR) + Math.abs(bC - aC);


}

}
// python vaccum cleaner

class AutomaticVacuumCleaner:
def getDistance(self, R, C, A, B):
la, lb=0,0
A-=1
la=A//C
if (A//C)%2==0:
lb = A%C
else:
lb = C-A%C-1
D=A+B
ma,mb=0,0
ma = D//C
if (D//C)%2==0:
mb = D%C
else:
mb = C-D%C-1
#return [ma,mb,la,lb]
return abs(ma-la)+abs(mb-lb)
// python 2
from collections import defaultdict

class AutomaticVacuumCleaner:
def getDistance(self, R, C, A, B):
def f (x):
X = x / C
Y = x - C * X
if X % 2 == 1: Y = (C - Y - 1)
return (X, Y)
x, y = f (A - 1)
x1, y1 = f (A + B - 1)
return abs (x - x1) + abs (y - y1)

# Powered by Greed 2.0-RC


//c++
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define vi vector<int>
#define all(a) (a).begin(),(a).end()
#define F first
#define S second
#define sz(x) (int)x.size()
#define hell 1000000007
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<b;i++)

using namespace std;


class AutomaticVacuumCleaner {
public:
long long getDistance(long long R, long long C, long long A, long long B) {
long long x1 = (A-1)/C;
long long y1 = (A-1)%C;
if(x1%2==0)y1=C-1-y1;
A+=B;
long long x2 = (A-1)/C;
long long y2 = (A-1)%C;
if(x2%2==0)y2=C-1-y2;
return abs(x1-x2)+abs(y1-y2);

}
};

You might also like