import java.io.*; /** * 2009年 国内予選A問題 次期町長 * */ public class Exp2009_A { /** メイン関数、ここからプログラムは動きだす。 */ public static void main(String[] args) throws Exception{ // ファイル読み込み BufferedReader br = new BufferedReader(new FileReader(args[0])); String line = null; while(null!=(line=br.readLine())){ String[] parts = line.split(" "); // nは候補者の人数、pは石の数 int n = Integer.parseInt(parts[0]); int p = Integer.parseInt(parts[1]); if(n == 0 && p == 0){ break; } // 各候補者の持っている石の数(初期値は、0になっている) int[] stones = new int[n]; // お椀に入っている石の数(初期値は最大の石の数) int cup = p; // 次期町長の番号 int winer = -1; for(int cnt=0;cnt<1000000;cnt++){ if(cup == 0){ // お椀に石がない場合 cup = stones[cnt%n]; stones[cnt%n] = 0; }else{ // お椀に石がある場合 stones[cnt%n]++; cup--; // 今、石を取った人の持っている石の数が最大の場合、次期町長に決定する。 if(stones[cnt%n]==p){ winer = cnt%n; break; } } } if(winer != -1){ System.out.println(winer); }else{ // 問題文から基本的には、ここの部分は実行されないはず。もしも以下の文が表示されたらバグの可能性が大きい。 System.out.println("not found winer"); } } br.close(); } }