member SRM458 DIV2
rate 1061->1003
( ^ω^) … (⊃⊂)
問題 | 結果 | 備考 |
---|---|---|
250 | failed system test | |
500 | opened | |
950 | opened |
1撃墜、1失敗で+25
250 - Desertification
『砂漠と森があります。1年経つと砂漠に隣接している森は砂漠化します。T年後の砂漠マスの数を返せ。』
import java.util.*; public class Desertification { public int desertArea(String[] is, int T) { boolean a = false; for(String s: is){ if(s.contains("D")) a = true; } if(!a) return 0; if(a && T>25) return (is.length * is[0].length()); char[][] now = new char[is.length][is[0].length()]; char[][] nex = new char[is.length][is[0].length()]; for(int i=0; i<is.length; i++){ now[i] = is[i].toCharArray(); nex[i] = is[i].toCharArray(); } for(int i=0; i<T; i++){ for(int j=0; j<is.length; j++){ for(int k=0; k<is[0].length(); k++){ if(now[j][k]=='D'){ if(j-1>=0) nex[j-1][k]='D'; if(j+1<is[0].length()) nex[j+1][k]='D'; //まちがい //if(j+1<is.length) nex[j+1][k]='D'; //せいかい if(k-1>=0) nex[j][k-1]='D'; if(k+1<is[0].length()) nex[j][k+1]='D'; } } } for(int j=0; j<now.length; j++){ for(int k=0; k<now[0].length; k++){ now[j][k] = nex[j][k]; } } } int res=0; for(int i=0; i<now.length; i++){ for(int j=0; j<now[0].length; j++){ if(now[i][j]=='D') res++; } } return res; } }
泣いた。