Interesting problem that is testing my while loop condition writing skills!
import java.io.PrintWriter; import java.lang.Exception; import java.util.Scanner; /** * * @author Sanchit M. Bhatnagar * @see http://uhunt.felix-halim.net/id/74004 * */ public class P12554 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); String[] song = { "Happy", "birthday", "to", "you", "Happy", "birthday", "to", "you", "Happy", "birthday", "to", "Rujia", "Happy", "birthday", "to", "you" }; int N = sc.nextInt(); String[] people = new String[N]; for (int i = 0; i < N; i++) { people[i] = sc.next(); } boolean done = false; int idxSong = 0; int idxPeople = 0; while (!done || idxSong != 0) { out.println(people[idxPeople] + ": " + song[idxSong]); idxPeople++; idxSong++; if (idxPeople == N) { done = true; idxPeople = 0; } if (idxSong == song.length) idxSong = 0; } out.close(); sc.close(); } }