tozangezan's diary

勝手にソースコードをコピペして利用しないでください。

Practice SRM 358 Easy

たまたまひらいてやるだけだったので書いてみた。

が、もはやアルゴリズマー失格級の不快コード。
しかも0というコーナーが痛い。

public class BrokenButtons{
	public int minPresses(int a,int []b){
		int ret=Math.abs(a-100);
		boolean table[]=new boolean[10];
		for(int i=0;i<10;i++)table[i]=true;
		for(int i=0;i<b.length;i++)table[b[i]]=false;
		for(int i=0;i<10;i++){
			if(i==0||table[i])
			for(int j=0;j<10;j++){
				if((i==0&&j==0)||table[j])
				for(int k=0;k<10;k++){
					if((i==0&&j==0&&k==0)||table[k])
					for(int l=0;l<10;l++){
						if((k==0&&l==0)||table[l])
						for(int m=0;m<10;m++){
							if((l==0&&m==0)||table[m])
							for(int n=0;n<10;n++){
								if((table[n])){
									int now=6;
									if(i==0){
										now--;
										if(j==0){
											now--;
											if(k==0){
												now--;
												if(l==0){
													now--;
													if(m==0)
														now--;
												}
											}
										}
									}
									ret=Math.min(ret,now+Math.abs(i*100000+j*10000+k*1000+l*100+m*10+n-a));
								}
							}
						}
					}
				}
			}
		}
		return ret;
	}
}

なんでこんなので最初のSubmitで200点きらないのかは俺にもわからん。