結果
| 問題 | 
                            No.48 ロボットの操縦
                             | 
                    
| コンテスト | |
| ユーザー | 
                             Cavasiro
                         | 
                    
| 提出日時 | 2020-04-16 22:42:12 | 
| 言語 | Java  (openjdk 23)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,104 bytes | 
| コンパイル時間 | 2,289 ms | 
| コンパイル使用メモリ | 76,800 KB | 
| 実行使用メモリ | 60,904 KB | 
| 最終ジャッジ日時 | 2024-10-02 13:57:25 | 
| 合計ジャッジ時間 | 9,339 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 3 TLE * 1 -- * 21 | 
ソースコード
import java.util.Scanner;
 
class Main {
	int x;
	int y;
	int l;
	int cnt;
	int ix;
	int iy;
	int f;
	int[][] face = {{0,1},{1,0},{0,-1},{-1,0}};
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();
		int y = sc.nextInt();
		int l = sc.nextInt();
		Main m = new Main(x,y,l);
		System.out.println(m.start());
	}
	Main(int x,int y,int l){
		this.x = x;
		this.y = y;
		this.l = l;
		cnt = 0;
		ix = 0;
		iy = 0;
		f = 0;
	}
	int start(){
		if(y>=0){
			while(iy+l<y){
				iy += face[f][1]*l;
				cnt++;
			}
			if(iy!=y){
				cnt++;
			}
			iy = y;
		}
		if(x>0){
			turn(1);
		} else if(x<0){
			turn(-1);
		}
		while(ix+l<Math.abs(x)){
			ix += face[f][0]*l;
			cnt++;
		}
		if(ix!=x){
			cnt++;
		}
		ix = x;
		if(y<0){
			if(f==0){
				turn(1);
				turn(1);
			} else {
				turn(2-f);
			}
		}
		while(iy+l<Math.abs(y)){
			iy += face[f][1]*l;
			cnt++;
		}
		if(iy!=y){
			cnt++;
		}
		iy = y;
		return cnt;
	}
	void turn(int flag){
		cnt++;
		if(flag>=0){
			f++;
			if(f>3){
				f = 0;
			}
		} else {
			f--;
			if(f<0){
				f = 3;
			}
		}
	}
}
            
            
            
        
            
Cavasiro