TopCoder SRM762 div2に参加。撃墜しまくったけどなかなかひどい。

f0019846_19300444.jpg
今日の朝食
f0019846_19300756.jpg
そして昼食。

f0019846_19305225.jpg
退勤は少し早めで。リフレクでは残酷な天使のテーゼ MEDIUM 99.8% S フルコン
f0019846_19305560.jpg
smooooch・∀・ MEDIUM 100.0% S EXCELLENT
f0019846_19305896.jpg
Flying Soda MEDIUM 99.6% S フルコン
f0019846_19310069.jpg
ハウトゥー世界征服 MEDIUM 100.0% S EXCELLENT
f0019846_19310310.jpg
jubeatは高嶺の花子さん EXTREME 944982 S HARD
f0019846_19324334.jpg
にめんせい☆ウラオモテライフ! EXTREME 939302 S HARD

帰宅後はTopCoder SRM762 div2に参加しました。
easyは配列を1つ以上の配列に分割して、それぞれの配列の合計値が正の値になるようにできるならそれを出力せよという問題。
1つ以上というところを見逃してしまい、処理を複雑に書きすぎて落とされる。

mediumはやるだけ。最小値以上、最大値以下を満たすような数を設定してあげるが、
基本的に最小値になる。最大値が最小値を下回っていたらそれは作れないというだけ。

public class Restrictions {

public int[] exist(int n, int m, int[] type, int[] l, int[] r, int[] val) {
int[] lt = new int[n];
int[] gt = new int[n];
for(int i = 0 ; i < n ; i++) {
lt[i] = Integer.MAX_VALUE;
gt[i] = 1;
}
for(int i = 0 ; i < m ; i++) {
for(int j = l[i] ; j <= r[i] ; j++) {
if(type[i] == 1) {
gt[j] = Math.max(gt[j], val[i]);
}else {
lt[j] = Math.min(lt[j], val[i]);
}
}
}
int[] newarray = new int[n];
for(int i = 0 ; i < n ; i++) {
if(gt[i] <= lt[i]) {
newarray[i] = gt[i];
}else {
return new int[] {-1};
}
}
return newarray;
}

}

結果ですが、easyを落とされるという失態。部分配列って1以上やんけ…という。
仕方ないのでmediumで制約条件が1以上になってないものを全部落としました。
この制約条件が後付けすぎてなんともいえない気分でしたが、最終的にはRatedになったようです。
ええ。1199 -> 1240

  by ddrer-yossi | 2019-07-03 19:29 | TopCoder

<< 遅くまで働いてゲーセンな日常 家で仕事。ひさびさのKFC! >>

SEM SKIN - DESIGN by SEM EXE