classRobot:def__init__(self,width:int,height:int):self.mx=width-1self.my=height-1self.p=2*self.mx+2*self.myself.cur=0self.moved=Falsedefstep(self,num:int)->None:self.moved=Trueself.cur=(self.cur+num)%self.pdefgetPos(self)->List[int]:d=self.curmx,my=self.mx,self.myif0<=d<=mx:return[d,0]ifmx<d<=mx+my:return[mx,d-mx]ifmx+my<d<=2*mx+my:return[mx-(d-(mx+my)),my]return[0,my-(d-(2*mx+my))]defgetDir(self)->str:d=self.curmx,my=self.mx,self.myifnotself.moved:return"East"if1<=d<=mx:return"East"elifmx<d<=mx+my:return"North"elifmx+my<d<=2*mx+my:return"West"return"South"# Your Robot object will be instantiated and called as such:# obj = Robot(width, height)# obj.step(num)# param_2 = obj.getPos()# param_3 = obj.getDir()
classRobot{privateintmx,my,p,cur;privatebooleanmoved;publicRobot(intwidth,intheight){this.mx=width-1;this.my=height-1;this.p=2*this.mx+2*this.my;this.cur=0;this.moved=false;}publicvoidstep(intnum){this.moved=true;this.cur=(this.cur+num)%this.p;}publicint[]getPos(){intd=this.cur;intmx=this.mx,my=this.my;if(0<=d&&d<=mx){returnnewint[]{d,0};}if(mx<d&&d<=mx+my){returnnewint[]{mx,d-mx};}if(mx+my<d&&d<=2*mx+my){returnnewint[]{mx-(d-(mx+my)),my};}returnnewint[]{0,my-(d-(2*mx+my))};}publicStringgetDir(){intd=this.cur;intmx=this.mx,my=this.my;if(!this.moved){return"East";}if(1<=d&&d<=mx){return"East";}elseif(mx<d&&d<=mx+my){return"North";}elseif(mx+my<d&&d<=2*mx+my){return"West";}return"South";}}/** * Your Robot object will be instantiated and called as such: * Robot obj = new Robot(width, height); * obj.step(num); * int[] param_2 = obj.getPos(); * String param_3 = obj.getDir(); */
classRobot{public:intmx,my,p,cur;boolmoved;Robot(intwidth,intheight){mx=width-1;my=height-1;p=2*mx+2*my;cur=0;moved=false;}voidstep(intnum){moved=true;cur=(cur+num)%p;}vector<int>getPos(){intd=cur;intmx=this->mx,my=this->my;if(0<=d&&d<=mx){return{d,0};}if(mx<d&&d<=mx+my){return{mx,d-mx};}if(mx+my<d&&d<=2*mx+my){return{mx-(d-(mx+my)),my};}return{0,my-(d-(2*mx+my))};}stringgetDir(){intd=cur;intmx=this->mx,my=this->my;if(!moved){return"East";}if(1<=d&&d<=mx){return"East";}elseif(mx<d&&d<=mx+my){return"North";}elseif(mx+my<d&&d<=2*mx+my){return"West";}return"South";}};/** * Your Robot object will be instantiated and called as such: * Robot* obj = new Robot(width, height); * obj->step(num); * vector<int> param_2 = obj->getPos(); * string param_3 = obj->getDir(); */
typeRobotstruct{mx,my,p,curintmovedbool}funcConstructor(widthint,heightint)Robot{mx:=width-1my:=height-1returnRobot{mx:mx,my:my,p:2*mx+2*my,cur:0,moved:false,}}func(this*Robot)Step(numint){this.moved=truethis.cur=(this.cur+num)%this.p}func(this*Robot)GetPos()[]int{d:=this.curmx,my:=this.mx,this.myif0<=d&&d<=mx{return[]int{d,0}}ifmx<d&&d<=mx+my{return[]int{mx,d-mx}}ifmx+my<d&&d<=2*mx+my{return[]int{mx-(d-(mx+my)),my}}return[]int{0,my-(d-(2*mx+my))}}func(this*Robot)GetDir()string{d:=this.curmx,my:=this.mx,this.myif!this.moved{return"East"}if1<=d&&d<=mx{return"East"}elseifmx<d&&d<=mx+my{return"North"}elseifmx+my<d&&d<=2*mx+my{return"West"}return"South"}/** * Your Robot object will be instantiated and called as such: * obj := Constructor(width, height); * obj.Step(num); * param_2 := obj.GetPos(); * param_3 := obj.GetDir(); */
classRobot{privatemx:number;privatemy:number;privatep:number;privatecur:number;privatemoved:boolean;constructor(width:number,height:number){this.mx=width-1;this.my=height-1;this.p=2*this.mx+2*this.my;this.cur=0;this.moved=false;}step(num:number):void{this.moved=true;this.cur=(this.cur+num)%this.p;}getPos():number[]{constd=this.cur;constmx=this.mx,my=this.my;if(0<=d&&d<=mx){return[d,0];}if(mx<d&&d<=mx+my){return[mx,d-mx];}if(mx+my<d&&d<=2*mx+my){return[mx-(d-(mx+my)),my];}return[0,my-(d-(2*mx+my))];}getDir():string{constd=this.cur;constmx=this.mx,my=this.my;if(!this.moved){return'East';}if(1<=d&&d<=mx){return'East';}elseif(mx<d&&d<=mx+my){return'North';}elseif(mx+my<d&&d<=2*mx+my){return'West';}return'South';}}/** * Your Robot object will be instantiated and called as such: * var obj = new Robot(width, height) * obj.step(num) * var param_2 = obj.getPos() * var param_3 = obj.getDir() */