Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2012-04-21SRM343, SRM344 (Practice)

SRM 343 CDPlayer

|  SRM 343 CDPlayer - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク -  SRM 343 CDPlayer - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=7476

  • 実装するだけ。
public class CDPlayer {

	public int isRandom(String[] songlist, int n) {
		String list = "";
		for (String s : songlist) {
			list += s;
		}
		int len = list.length();
		
		for (int i = 0 ; i < n ; i++) {
			boolean isok = true;
			int[] pcnts = new int[512];
			for (int p = 0 ; p < i ; p++) {
				if (++pcnts[list.charAt(p)] >= 2) {
					isok = false;
					break;
				}
			}
			if (!isok) {
				continue;
			}
			
			int idx = i;
			while (idx < len && isok) {
				int[] cnts = new int[512];
				for (int j = idx ; j < Math.min(len, idx + n) ; j++) {
					if (++cnts[list.charAt(j)] >= 2) {
						isok = false;
						break;
					}
				}
				idx += n;
			}
			if (isok) {
				return i;
			}
		}
		return -1;
	}
}