タグ:TopCoder ( 166 ) タグの人気記事

 

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

令和の幕開け TopCoder R1Bに参加。

f0019846_20234846.jpg
令和~~ということで早速コンビニで買ってきて食べる。
幕開けは大雨でしんどかったです。
f0019846_20242351.jpg
ゲーセンは15時より。しかし4日連続の雨続き。
Evans MXM 9585898 AA+ Uクリア
f0019846_20261696.jpg
Catch Our Fire! MXM 9681620 AA+ Uクリア
f0019846_20262322.jpg
弐寺はReiwaを捩ったラインナップになるかと思いきや、全然そういったことはありませんでした。
f0019846_20271436.jpg
そしてjubeat。Follow Tomorrow EXTREME 933305 S HARD
f0019846_20271665.jpg
たからもの EXTREME 943470 S HARD

令和記念だからといって特にこれといった何かを狙いに行くことなく…。
仕方ないので令和初の夕食はコレにしました。
f0019846_20283562.jpg
その後はDIVAの残りのコンテストをこなす。
f0019846_20285975.jpg
マージナル EXEXTREME 100.24% 932880 EXCELLENT
f0019846_20292602.jpg
超上級コンテストの2つ目は391.87%で金。
f0019846_20303464.jpg
Clover Club EXEXTREME 104.60% fine16 521600 PERFECT
f0019846_20312489.jpg
フランシスカ EXTREME SAD1 101.85% 516240 EXCELLENT
f0019846_20320836.jpg
ありふれたせかいせいふく EXTREME 101.36% 710200 SAD1 EXCELLENT
f0019846_20321483.jpg
パラジクロロベンゼン EXTREME 99.74% fine64 PERFECT ひさしぶりの。
f0019846_20330226.jpg
Clover Club EXEXTREME fine15 104.74% PERFECT
f0019846_20330559.jpg
巨大少女 EXEXTREME 105.90% 678940 fine10 PERFECT
f0019846_20341677.jpg
終わったのでリフレクへ。恋する☆宇宙戦争っ!! MEDIUM 99.4% S フルコン
f0019846_20341811.jpg
SCHWARZSCHILD FIELD MEDIUM 97.8% AAA+ フルコン
f0019846_20344307.jpg
ちくわパフェだよ☆CKP MEDIUM 99.3% S フルコン
f0019846_20344546.jpg
ra'am MEDIUM 99.2% S フルコン

帰宅後は滑り込みでTopCoder R1Bに登録し、参加。
easyは、スキーする最大滑空長を調べてくれという問題。
前から後ろからをそれぞれ調べるだけ。
制約が甘すぎて多分適当に書いても落ちない。

public class EllysSki {

public int getMax(int[] height) {
int max = 0;
for(int i = 0 ; i < height.length ; i++) {
int start = height[i];
int count = 1;
for(int j = i + 1 ; j < height.length ; j++) {
if(start >= height[j]) {
start = height[j];
count++;
}else {
break;
}
}
max = Math.max(count, max);
}
for(int i = height.length - 1 ; i >= 0 ; i--) {
int start = height[i];
int count = 1;
for(int j = i - 1 ; j >= 0 ; j--) {
if(start >= height[j]) {
start = height[j];
count++;
}else {
break;
}
}
max = Math.max(count, max);
}
return max;
}

}

mediumは、色々と制約がめんどそうなテレポート。解かず。
1205->1232でした。

  by ddrer-yossi | 2019-05-01 20:23 | TopCoder

ひらめきによる勝利?TopCoder飲み

今朝はつまずいていた某所の謎解きを完了しました。
そして向かうは某所。
f0019846_18445981.jpg
一人でやってきましたが、道中で端末トラブルに見舞われて交換。
その後は順調に進みましたが、ラストでつまずいて死亡。解説を見てそれはなあ…ってなった。
試みは面白かったので改善しつつ頑張って欲しいです。

その後はゲーセンちょろちょろ。
f0019846_18454749.jpg
OVER TIME(A)をフルコン
f0019846_18455748.jpg
XROSS INFECTION GRVは9424719で初の21%残り。
f0019846_18464310.jpg
リフレクはLucy WHを97.2% AAA+ フルコン
f0019846_18463440.jpg
jubeatは女々しくて[2] EXTREME 983911 SSS

帰宅してからは日記を書き進めていました。7月中盤部分を主にやっていたのですが、
全然進まなくて愕然としました。
疲れて寝ていたところ、忘年会の存在に気づき、1時間遅れで上野へ。

f0019846_18480360.jpg
2次会はHubで軽く飲みました。
とはいえ終電近くの状況で、ハードな日程となってしまいました。

  by ddrer-yossi | 2019-01-04 18:43 | 謎解き

周遊5+潜入2の謎解き日和

今日は朝10時から集合し、TMCで周遊謎をこなしていく。
MYSTERY MAIL BOX GLOBAL EDITION
MYSTERY MAIL BOX「Mystery Manからの招待状」 x 3
MYSTERY MAIL BOX ジョジョの5つ。

f0019846_16422766.jpg
お昼はラーメンを食べました。
f0019846_16432457.jpg
ドーナツをほおばりつつ、残るは潜入へ。
f0019846_16435897.jpg
1回目はぐだぐだっぷりでしたが、2回目は知力モードで通常クリア。
通常クリアになってしまったので、まあS狙いに再戦をどっかでするかーぐらいの心意気です。
夜は一休でがっつり食べる。
f0019846_16445101.jpg
f0019846_16445392.jpg
f0019846_16450474.jpg
f0019846_16450641.jpg
f0019846_16450991.jpg
f0019846_16451380.jpg
f0019846_16451629.jpg
f0019846_16452095.jpg
f0019846_16452233.jpg
お疲れ様でした。

TopCoderは Round 1Aに参加。
easyのみしか解けず、レーティングは落ちた。1193 -> 1163
2*(N*X+N-1)+1を導くだけ。

public class RedDragonInn {

public int maxGold(int N, int X) {
return (X * N + N - 1) * 2 + 1;
}

}

  by ddrer-yossi | 2018-04-21 16:40 | 謎解き

海物語JPC1672枚、TCO R2Bに参戦し、Div2落ち…。

今日は謎解きパンフを取り寄せてきた。小田急と京王のやつ。いつやるかは特にまだキメていない。

f0019846_17485171.jpg
お昼は鶏そばを食べた。この時取材が来ていて、後にテレビに映ることになるとは思っていなかった。14時半とかだったような。
f0019846_17491893.jpg
その後ゲーセンに。
f0019846_17495024.jpg
Brazilian Anthem HARDで93.0% AAA フルコン
f0019846_17500331.jpg
REVではCrocus UNLIMITED をSuper8に更新。
f0019846_17510788.jpg
f0019846_17511523.jpg
XXX-revolt UNLIMITEDは、98%を出し、5万点を超えたところでDDRガチ勢が来たので退却。

メダルゲームに向かい、海物語でいけそうなのがあったのでやる。
1/8に勝利し、1/10にも勝利した。枚数すくねえ…。
f0019846_17520443.jpg
f0019846_17522965.jpg
その後初のスーパーワリンタイムも出るが、即死。
f0019846_17523484.jpg
f0019846_17525028.jpg
結局若干の勝利。13093枚
f0019846_17531565.jpg
夜はTopCoder Open Round2 Bに参加。

easyは、K文字あるリングがC[i]個あるとき、リングを1つ選んでL[i]文字に切り離して順に連結するとき、
辞書順に大きいものを答えるという問題でした。

medium以降はやばそうだったので特に見ていません。

1226 -> 1193
なんと久しぶりのDiv2落ちです。なんてこったい…。ショックで死んだ。

  by ddrer-yossi | 2017-07-08 17:47 | TopCoder

闇のアロハシャツ巡り、OB会、TopCoder R2A

今日は朝から昼にかけてはゼルダ。10000ルピーを要求され、つらい。
f0019846_12463521.jpg

大学の同期が地方から久しぶりに遠征しに来ているので、一緒に飯を食い、アロハシャツを探していた。
f0019846_12232611.jpg
f0019846_12241298.jpg
エビつけ麺は美味でした。なかなか量が多かった・・・!
f0019846_12242458.jpg
そして暑い中アロハシャツを探し回るが、手ごろなものは見つからず、諦めようとしたところで、
ドン・キホーテにあるのではと思いつく。最初からそうしろ…。
結局2000円弱で買えるものが見つかったので一安心し、カフェへ。
f0019846_12244466.jpg
からのゲーセン。DAY DREAM(A)を易。
f0019846_12254255.jpg
リフレクは最難関?のCatastrophic Dance WHを78.9%に。あと少しで80%。
f0019846_12260976.jpg
DARK LEGACY(A)もイージーがつきました。調子がいい…。
f0019846_12264387.jpg
PARADISE LOST(A)は惜しかった…。
f0019846_12270608.jpg
夜はOB会へ。1次会の料理はこんな感じ。あんまり食べてないけど…。
f0019846_12273580.jpg
f0019846_12274188.jpg
f0019846_12275499.jpg
f0019846_12280247.jpg
f0019846_12284699.jpg
f0019846_12285706.jpg
本棚っぽいかざりの奥がトイレになっています。

f0019846_12283202.jpg
二次会ですが大外れのお店でした。洞窟風をうたっていましたが、空気が悪く、床がべとべと、料理もダメダメで、飲み放題の飲み物も、
気の抜けたコーラ、ビールのようなものといったものが提供されました。

f0019846_12295766.jpg
f0019846_12300208.jpg
f0019846_12300752.jpg
f0019846_12301208.jpg
f0019846_12301789.jpg
f0019846_12302150.jpg
f0019846_12302589.jpg
帰路につき、TopCoder R2Aに参加。詳細はのちほど。

ポケモンGOは5占領。お疲れ様でした。
f0019846_12304195.jpg

  by ddrer-yossi | 2017-05-20 12:22 | Beatmania

TopCoder SRM714、スピンフィーバー2、まさかの2回Red Jackpot

今日もゼルダがっつり。夜はコンテスト前にリフレクをやる。
f0019846_14171936.jpg


20時からTopCoder SRM714に参戦。
結果は後ほど。

そしてREV。戦国BASARA(SENGOKU BASARA) MASTERを100% ULT
f0019846_14174714.jpg
後はメダルゲームでアラビアンジュエルで行けそうなのがあったのでやる。
f0019846_14181391.jpg
Blue Jackpot 336
f0019846_14191615.jpg
Yellow Jackpot 150

そしてスピンフィーバー2のやり残しっぽいのを見つけたのでやってみるとすぐに…。

f0019846_14193377.jpg
Red Jackpot 1068WIN
f0019846_14200427.jpg
Red Jackpot 1009WIN

結果、1500枚近く増えました。
f0019846_14202398.jpg
ポケモンGOは6占領です。
f0019846_14202882.jpg


  by ddrer-yossi | 2017-05-07 14:15 | cross beats

アルガーの挑戦状、闇の始まり。 TopCoder SRM 713

今日はTopCoder SRM 715に参加・・・といいたいところですが、
仕事が溜まっていたので問題を読んで無理そうだと思ったところで諦めました。
取り敢えずeasyはこんな問題でした。
数値nが与えられているとき、
a^b = c^dを満たすa,b,c,dの組が何通りあるか求めよ。
ただし10^9 + 7の余りで出力せよ。
nは1 から 1,000,000,000である。

1252 -> 1286でした。やはり難しかったのか、参加するだけでレートが上がる回に。
仕事は15時ぐらいで切り上げ、その後はひたすらアルガーの挑戦状に挑む。
しかし、最終ステージで全キャラのHPを1にしたところであと一歩足りず、チコに回復されて撃沈しました。
こうなるとコンティニューしても大体勝てないので調整を行った。
それはひたすらフェーリの体力をあげていく作業だった。
タスタス森を周回してひたすら緑ブースラを集めていく。
やり切り整ったところで深夜を回っていた。
明日には勝てるかなという確証はあった。

  by ddrer-yossi | 2017-04-27 16:53 | TopCoder

ポケモンGO有給。弐寺大収穫。 TopCoder SRM712

今日はポケモンGOのために有給を取得した。
お昼はいつもの鶏白湯ラーメンを食べた。
f0019846_18235681.jpg

動けたのは14時頃から。
動きつつゲーセン行きつつの繰り返しで経験値を稼いでいく。

北斗の拳の乱世モードで1点灯のみでしたがまさかの300ダイレクトが来ると思わなかった。しかし微減で終了。
f0019846_18244101.jpg
Under the Sky(A)をフルコンしたり
f0019846_18252564.jpg
罪と罰(A)をフルコンしたり

f0019846_18260872.jpg

EBONY & IVORY(A)に易がついたり
f0019846_18261027.jpg
SCHWARZSCHILD FIELD(A)に難がついたり
f0019846_18263080.jpg
SCREAM SQUAD(A)にEXHがついたり
f0019846_18265241.jpg
Hello Happiness(A)にEXHがついたり
f0019846_18271417.jpg
Let The Track Flow(A)に難がついたり
f0019846_18273197.jpg
Super Rush(A)に易がついたり
f0019846_18274930.jpg
ZZに易がついたり
f0019846_18281815.jpg
灼熱(A)がノマゲできそうだったりしました。
f0019846_18283704.jpg
等速Ganymede(A)もBP160まで下がる。
f0019846_18285848.jpg
大収穫でしたね。

20時にTopCoder SRM 712に参加。

easyは左の要素を加算するか、右の要素を加算するかの操作で、sからtにする操作を出力せよという問題。
これ、LとRを何回やるかによって結果が同じ(LLLRR = LRRLLなど)ということに気付けば、
総当たりでやればOK。でもどうでもいいところでミスってChallenge Succeedされました。
正しく書いたコードは下記。

<pre>
public class LR {

public String construct(long[] s, long[] t) {
long sum = 0;
long sum2 = 0;
for(int i = 0 ; i < s.length ; i++){
sum += s[i];
sum2 += t[i];
}
boolean nothing = true;
for(int j = 0 ; j < s.length ; j++){
if(s[j] != t[j]){
nothing = false;
break;
}
}
if(nothing)return "";
if((sum == 0 && sum2 != 0) || sum2 < sum)return "No solution";
long tmp = sum;
int count = 0;
boolean isok = false;
while(tmp < sum2){
tmp += tmp;
count++;
if(tmp == sum2){
isok = true;
break;
}
}
if(!isok || count > 100)return "No solution";
int Lc = -1;
int Rc = -1;
for(int i = 0 ; i <= count ; i++){
long[] gc = new long[s.length];
for(int k = 0 ; k < s.length ; k++){
gc[k] = s[k];
}
for(int j = 0 ; j < i ; j++){
long[] tmpc = new long[s.length];
for(int k = 0 ; k < s.length ; k++){
if(k == 0){
tmpc[k] += gc[s.length - 1];
}else{
tmpc[k] += gc[k - 1];
}
}
for(int k = 0 ; k < s.length ; k++){
gc[k] += tmpc[k];
}
}
for(int j = 0 ; j < count - i ; j++){
long[] tmpc = new long[s.length];
for(int k = 0 ; k < s.length ; k++){
if(k == s.length - 1){
tmpc[k] += gc[0];
}else{
tmpc[k] += gc[k + 1];
}
}
for(int k = 0 ; k < s.length ; k++){
gc[k] += tmpc[k];
}
}
boolean isok2 = true;
for(int j = 0 ; j < s.length ; j++){
if(gc[j] != t[j]){
isok2 = false;
break;
}
System.out.println(gc[j]+","+t[j]+","+count);
}
if(isok2){
Lc = i;
Rc = count - i;
}
}
System.out.println(Lc+","+Rc);
String st = "";
for(int i = 0 ; i < Lc ; i++)st += "L";
for(int i = 0 ; i < Rc ; i++)st += "R";
if(Lc == -1 && Rc == -1)return "No solution";
return st;
}

}
</pre>

1258 -> 1252
解けていれば1300台は行ってたのに…。

深夜のポケモンGOは5占領でした。
f0019846_18292774.jpg

  by ddrer-yossi | 2017-04-18 18:22 | TopCoder

ローゼママルチ耐久、TCO17 Algorithm Round 1A

今日はひたすらローゼママルチ耐久に苦しんだ。
30戦ほどして、ようやく半分くらいかといったところ。

ゲーセンに行ってみたら筐体が裏返っていました。さようならぷよクエAC。
f0019846_10182251.jpg

夜は気合の煮干しラーメン。
f0019846_10184758.jpg
REVはBlack Lotus MASTERをS+取得でUNLIMITEDを解禁したのみ。スタート地点にすら立てていない。
f0019846_10185518.jpg

深夜1時からTopCoder Open R1Aに参加。
内容は2問解いて当たり前みたいな感じでした。

easyは、卓球の強さが配列で与えられていて、N連勝したら連勝者は敗者の後ろに並ぶようにする。
K回目のときの対戦相手の状況を出力せよという問題。単純にQueueのシミュレーションを行えばよい。
いわゆるやるだけ。

<pre>
import java.util.LinkedList;
import java.util.Queue;

public class PingPongQueue {

public int[] whoPlaysNext(int[] skills, int N, int K) {
Queue<Integer> q = new LinkedList<Integer>();
int[] wincount = new int[skills.length];
for(int i = 0 ; i < skills.length ; i++){
q.add(i);
}
int champ = q.poll();
for(int i = 0 ; i < K ; i++){
if(champ == -1)champ = q.poll();
int challenger = q.poll();
if(skills[champ] > skills[challenger]){
if(i == K - 1)return init(skills, challenger, champ);
wincount[champ]++;
wincount[challenger] = 0;
q.add(challenger);
if(wincount[champ] == N){
wincount[champ] = 0;
q.add(champ);
champ = -1;
}
}else{
if(i == K - 1)return init(skills, champ, challenger);
wincount[challenger]++;
wincount[champ] = 0;
q.add(champ);
if(wincount[challenger] == N){
wincount[challenger] = 0;
q.add(challenger);
champ = -1;
}else{
champ = challenger;
}
}
}
return null;
}

private static int[] init(int[] skills, int L, int W){
int data[] = new int[2];
data[0] = skills[L];
data[1] = skills[W];
System.out.println(data[0]+","+data[1]);
return data;
}
}
</pre>

mediumは、X,Y,Z各軸で厚さがSになるようにカットしたときの、表面積が最大となる値を求める。
DPとか思いつきもしなかったので、X,Y,Zの長さをソートした上で、短い辺から順に切っていった。


<pre>
import java.util.Arrays;

public class CheeseSlicing {

public int totalArea(int A, int B, int C, int S) {
int sum = 0;
int[] dim = new int[3];
dim[0] = A;
dim[1] = B;
dim[2] = C;
Arrays.sort(dim);
if(dim[0] < S)return 0;
if(dim[0] % S != 0){
sum += dim[1] * dim[2] * (dim[0] / S - 1);
dim[0] -= (S * (dim[0] / S - 1));
}else{
return sum + dim[1] * dim[2] * (dim[0] / S);
}
System.out.println(sum+","+dim[0]+","+dim[1]+","+dim[2]);
if(dim[1] % S != 0){
sum += dim[0] * dim[2] * (dim[1] / S - 1);
dim[1] -= (S * (dim[1] / S - 1));
}else{
return sum + dim[0] * dim[2] * (dim[1] / S);
}
System.out.println(sum+","+dim[0]+","+dim[1]+","+dim[2]);
if(dim[2] % S != 0){
sum += dim[0] * dim[1] * (dim[2] / S - 1);
dim[2] -= (S * (dim[2] / S - 1));
}else{
return sum + dim[0] * dim[1] * (dim[2] / S);
}
Arrays.sort(dim);
return sum + dim[1] * dim[2];
}

}
</pre>

ポケモンGOは7占領でした。時間帯的に人がいなかったか。
f0019846_10192940.jpg

  by ddrer-yossi | 2017-04-01 10:15 | TopCoder

SEM SKIN - DESIGN by SEM EXE