diff --git a/syamauchi/src/C132.java b/syamauchi/src/C132.java new file mode 100644 index 0000000000000000000000000000000000000000..2f4a300d5364f57ea0e7d9072215485a823e81db --- /dev/null +++ b/syamauchi/src/C132.java @@ -0,0 +1,57 @@ +package src; + +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; + +public class C132 { + private final int allRooms; + + private C132(final int allRooms) { + this.allRooms = allRooms; + } + + public static void main(String[] args) { + final Scanner sc = new Scanner(System.in); + new C132(sc.nextInt()).cleanRoom(sc); + sc.close(); + } + + private void cleanRoom(final Scanner sc) { + // 部屋番号とその部屋が掃除されているか + final Map roomsMap = createRoom(); + int nowRoom = 1; + // 掃除した後に移動する部屋の間隔 + final int roomsToMoveCount = sc.nextInt(); + // すでに掃除した部屋に着くまで処理 + while (!isCleanedRoom(roomsMap, nowRoom)) { + roomsMap.put(nowRoom, true); + nowRoom = moveRoom(nowRoom, roomsToMoveCount); + } + if (roomsMap.containsValue(false)) { + System.out.println("no"); + } else { + System.out.println("yes"); + } + } + + private boolean isCleanedRoom(final Map roomsMap, final int nowRoom) { + return roomsMap.get(nowRoom); + } + + private int moveRoom(final int nowRoom, final int roomsToMoveCount) { + int cleaningRoom = nowRoom + roomsToMoveCount; + if (cleaningRoom > this.allRooms) { + cleaningRoom = cleaningRoom - this.allRooms; + } + return cleaningRoom; + } + + private Map createRoom() { + final Map roomsMap = new HashMap<>(); + for (int i = 1; i <= this.allRooms; i++) { + roomsMap.put(i, false); + } + return roomsMap; + } +}