Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Lotto/강소현

From ZeroWiki
Revision as of 03:28, 23 August 2011 by imported>talin0528

Status

Problem 2245 User talin0528
Memory 5060K Time 266MS
Language Java Result Accepted

Source

import java.util.Scanner;
public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextInt()){
			int k = sc.nextInt();
			if(k==0) System.exit(0);
			int[] S = new int [k];
			for(int i=0; i<k; i++)
				S[i] = sc.nextInt();
			printPossibleNum(S);
		}
	}
	private static void printPossibleNum(int[] S) {
		int num = (int) (Math.pow(2,S.length-6)-1);
		while(num < Math.pow(2, S.length)){
			int [] bin = decToBin(num);
			int count = 0;
			for(int i=0; i<S.length; i++){
				if(bin[S.length-i-1]==0){
					if(++count != 6)
						System.out.print(S[i]+" ");
					else
						System.out.println(S[i]);
				}
			}
			num = increase(bin);
		}
		System.out.println("");
	}
	private static int increase(int[] bin){
		int num = 0, count=0;
		while(num<bin.length-1){
			if(bin[num] == 1){
				if(bin[num+1] == 0){
					bin[num+1] = 1;
					bin[num] = 0;
					break;
				}else{
					bin[num] = 0;
					bin[count++] = 1;
				}
			}
			num++;
		}
		int result = 0;
		for(int k=0; k<bin.length;k++){
			result += bin[k]*Math.pow(2,k);
		}
		return result;
	}
	private static int[] decToBin(int i){
		int [] temp = new int[13];
		int num = 0;
		while(i>0){
			temp[num++] = i%2;
			i = i/2;
		}
		return temp;
	}
}

Trial and Error

  • Presentation Error - 다 출력하고 마지막에 엔터 하나 더 쳐야함.
  • AnEasyProblem/강소현과 비슷해서 복붙함ㅇㅁㅇ...

ACM_ICPC/2011년스터디