<   2013年 11月 ( 30 )   > この月の画像一覧

 

進捗はつくれる!

そろそろとりかからないとやばいなぁということで進捗を進める。
お昼はゴッドフェスなので、パズドラで3回ほど引く。オーディンでる。

夜はゲーセンへ。
Mirage95.7
f0019846_3271943.jpg

エレクリ黒★。惜しい…。
f0019846_3273446.jpg


癖がつかないうちにクリアしたいんだけどなー。
drive me crazyのhyperも無事フルコン。画像は紛失によりない。

  by ddrer-yossi | 2013-11-30 23:23 | 日常生活 | Comments(0)

TopCoder SRM598 久々のHard解き

今日は朝はSRMに参加。

まずはeasy。アルファベットの文字列があり、連続した場合は片方消去していくという問題。
愚直に消した。

public class ErasingCharacters {

public String simulate(String s) {
StringBuilder sb = new StringBuilder(s);
for(int i = 0 ; i < sb.length()-1 ; i++){
if(sb.charAt(i) == sb.charAt(i+1)){
sb.deleteCharAt(i);
sb.deleteCharAt(i);
i = Math.max(-1, i-2);
}
}
System.out.println(sb.toString());
return sb.toString();
}

}


mediumは、瓶の重さが与えられていて、300gの箱がいくつ必要かという問題。
瓶の重さをソートして、重い順から貪欲に比較して、箱が必要なら追加するという方針で問題ない。
なぜそれで良いかは知らない。

import java.util.ArrayList;
import java.util.Arrays;

public class BinPackingEasy {

public int minBins(int[] item) {
int[] bins = new int[item.length];
Arrays.sort(item);
for(int i = item.length-1 ; i >= 0 ; i--){
for(int j = bins.length-1 ; j >= 0 ; j--){
if(bins[j] + item[i] <= 300){
bins[j] += item[i];
break;
}
}
Arrays.sort(bins);
}
int index = 0;
for(int i = bins.length-1 ; i >= 0 ; i--){
if(bins[i] != 0){
index++;
}else{
break;
}
}
return index;
}

}



hardは、Cielの可動範囲、Lissの可動範囲、離れてる位置が与えられていて、
交互のターン行動で相手の範囲に入れるかどうかという問題。
まず最初にCielが離れている位置よりも可動範囲が広ければ絶対に勝てる。
その条件以外では、可動範囲の差以上に可動範囲の小さいほうが大きければ、
引き分けに動かざるをえない。
たとえば3,5であれば、5動く側は3以内まで詰めてしまうと3側に負けてしまう。
かといって4離れた状態だと、次に必ず最大7まで離されてしまう。
つまり、追い詰めることができない。
追い詰められる場合は移動範囲が大きいほうが強くなる。


public class FoxAndFencingEasy {

public String WhoCanWin(int mov1, int mov2, int d) {
if(mov1 >= d)return "Ciel";
if(Math.abs(mov2-mov1) <= Math.min(mov1, mov2)){
return "Draw";
}else if(mov1 > mov2){
return "Ciel";
}else{
return "Liss";
}
}

}



challengeはする暇もなく歯医者へ。
お釣りでとてもレアな1000円札に遭遇する。
f0019846_4182375.jpg


その後はリフレクをちょっと。
Devilz staircaseでAAA+
f0019846_4383167.jpg

後はExpress Emotion(Another)でフルコン(画像なし)

帰宅後はシミュレータ変換用のプログラムを書いていた。
夕方にHHKBが届く。
3台注文したものの、2台キャンセルされ、結局もう持っている墨の無刻印が届きました。
1台目の1/5の値段で購入した。

f0019846_4443981.jpg


夜はおもひでぽろぽろを少し見つつ、
初音ミクのクリスマスケーキを予約するため、途中で離脱。
予約ですが、好評につき延長らしいです。
初音ミクのフィギュア付きクリスマスケーキが好評につき予約延長!12/8までです。

これがために、コドフォを完全に忘れてました。
何か成果をだそうということで、凛として咲く花の如くEXをフルコン。
これ、意外に切りどころ多くて、難しいんです。

f0019846_4472868.jpg

  by ddrer-yossi | 2013-11-29 23:11 | TopCoder | Comments(0)

ドラクエ1先着100万名

今日はスクエニによるドラクエのアプリ配布が行われていました。
夕方頃に落としましたが、余裕でした。

夜はフィッシング詐欺がお金にガード硬い人ほど遭いやすいとか言ってた番組があったけど、
そういう問題じゃねーよって思った。
情弱が引っかかるんですよねー…。

ゲーセンでは、ポップンの調子が良かった。
弐寺も、中華急行Anotherでフルコンするなど。
f0019846_458816.jpg

ダージュHyperフルコン
f0019846_4583079.jpg

イブの時代っ!EXフルコン
f0019846_4584823.jpg

データはありませんが、他にもエピックポエトリーとオラトリオをフルコンしました。
f0019846_459416.png


後はリフレクでリサリシアをプレー。
[ここに画像を載せる]

帰宅後は部屋が片付けられていてしょんぼり。勝手にやらないでほしい…。

  by ddrer-yossi | 2013-11-28 23:50 | pop'n music | Comments(0)

E-4なんてなかったんや

早めに起きて再開しようとは思っていたものの、結局起きたら9時ちょうどでした。
遠征すら行けず。

結果載せます。ここまでうまくいかないとは思わなかった。
大破しやすい奴を旗艦にするということを今度はやっておこうと思う。
特にハイパーさん。

f0019846_5153613.png


でももう時間の無駄だしやらないかなー…。

15時に退勤し、某所で12月に行う業務のオリエンテーションへ。
その途中、コンビニに寄り、おにぎりを2個買い、3分間歩きながら食べるという荒業に。
19時に終了し、ゲーセンへ。

Project Diva Arcadeを中心にプレー。
案の定データがないのですが、あまりプレーしてないので履歴からリザルトピクチャを購入する形で。
Weekender Girl
f0019846_521559.jpg


Fire◎Flower
f0019846_521526.jpg


キャットフード
f0019846_522916.jpg


アンハッピーリフレイン
f0019846_5221478.jpg


取り敢えずこれで新曲全部PERFECTトライアルまで終了。

f0019846_5231917.png

こんな感じ。

その後は弐寺、リフレク、pop'nは1クレずつやりつつ、jubeatを6クレほど。
リサリシアの解禁と、難易度10のALL:S、11月分の解禁を終わらせた。

写真消滅したので記録上残ってるもので。

Lisa-RICCIA 931817
Thor's Hammer 914221
Vermillion 931492
[E] 942600
Dragon Blade 928216
Romancing Layer 958702
Proof of the existence 953106
Riot of Color 937745
TSAR BOMBA 930873
トルコ行進曲 962998
ダイナマイト 971124 fullcombo
Move That Body 960236
Unicorn tail Dustboxxxx RMX 954104
Gott 952762
We're so Happy 940786

ダイナマイトフルコンは嬉しかった。

帰宅後は、夜中にHHKBが5000円ちょっとで買える祭りになっていたので、参加していました。

f0019846_5244440.png

まあ、後悔してないですよねー。
恐らく値段の間違いでALLキャンセルされそうですが。

後はデイリー開発で32号をゲット。レアらしい。
f0019846_525261.png

そして、4-2で伊58を引く。これは嬉しい。
f0019846_5261063.png

  by ddrer-yossi | 2013-11-27 23:04 | 日常生活 | Comments(0)

E-4は深い闇だった。 Codeforces#215

今日は朝に某所に向かうも、午後からということが判明したので、
E-4の続きをやる。3回めにして夕張さんが出る。
その後はひたすら、21時過ぎまでやってましたが、残り3/7というところまでしか。
キラ付は心が折れました。

それも気にしつつ、codeforcesに参加。結局ぐだるのわかってた。

A問題は、コートを預けるラックに代金があり、ゲストが安い順で取っていく。
スペースがなければ1払う。
利益を出せという問題。
単純にコートを預けるラックを安い順にソートして、ゲストに割り当てていき、
足りない時点でマイナス1を足し続ければok。


import java.util.Arrays;
import java.util.Scanner;

public class Main2 {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int d = sc.nextInt();
int[] hooks = new int[n];
for(int i = 0 ; i < hooks.length ; i++){
hooks[i] = sc.nextInt();
}
Arrays.sort(hooks);
int p = sc.nextInt();
int price = 0;
for(int i = 0 ; i < p ; i++){
if(i >= hooks.length){
price -= d;
}else{
price += hooks[i];
}
}
System.out.println(price);
}
}


B問題は、数列が与えられていて、ある場所から最後までにおいて独立した数値がいくつあるのか
という問題。数値の範囲が100000までなので、
それ用のboolean型配列を与えて、
後ろからまだ加えられていない数値であれば、リストに加えてあげて、リストの大きさで判断するという感じ。
しかし実際はリストもいらないかも。まだ加えられていない数値であれば、カウントを増やして、
その値を入れるだけで良いかもしれない。ということで修正。


import java.util.Scanner;

public class Main2 {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] a = new int[n];
int[] nums = new int[n];
boolean[] numb = new boolean[100001];
int count = 0;
for(int i = 0 ; i < a.length ; i++){
a[i] = sc.nextInt();
}
for(int i = a.length-1 ; i >= 0 ; i--){
if(!numb[a[i]]){
numb[a[i]] = true;
count++;
}
nums[i] = count;
}
for(int i = 0 ; i < m ; i++){
System.out.println(nums[sc.nextInt()-1]);
}
}
}


C問題は、xyzからなる文字列が与えられていて、その部分文字列に関して、
"zyx", "xzy", "yxz"があれば、並び替える。停止性があるかどうか求めよという問題。
xyzの個数を見ていればなんとかなるかなーと思ったけどなんとかならなかった。

これが解けなかったのでレートが落ちてしまう。

E-4ボスを終えた時の状態
f0019846_5463282.png


これは・・・ブラック鎮守府もびっくり。

  by ddrer-yossi | 2013-11-26 23:29 | codeforces | Comments(0)

Facebook Hacker Cup 2014 Qualification Round

今日はお昼ごろにFacebook Hacker Cupの結果が出た。
2問中2問正解で通過。

1問目。正方形が1つだけ生成されている状態かどうかを求める問題。
処理が若干めんどくさい。


import java.util.*;
import java.io.*;

public class CopyOfBalance {

public static void main(String args[]) throws Exception{
Scanner input = new Scanner(new FileReader("./iothings/square_detector.txt"));
PrintWriter pw = new PrintWriter(new FileWriter("./iothings/output.txt"));
int n = input.nextInt();
input.nextLine();
for(int i = 0 ; i < n ; i++){
int k = input.nextInt();
input.nextLine();
String[] s = new String[k];
for(int j = 0 ; j < k ; j++){
s[j] = input.nextLine();
}
pw.println("Case #"+(i+1)+": "+num(k,s));
}
input.close();
pw.flush();
pw.close();
}

public static String num(int k,String[] s){
int stx = -1;
int sty = -1;
int length = -1;
for(int i = 0 ; i < k ; i++){

for(int j = 0 ; j < s[i].length() ; j++){
if(s[i].charAt(j) == '#'){
if(stx == -1){
stx = j;
sty = i;
}else if(j == s[i].length()-1 && length == -1 && stx != -1){
length = j-stx+1;
}else if(length == -1 || (stx <= j && j < stx+length && sty <= i && i < sty+length)){

}else{
return "NO";
}
}else{
if(length == -1){
if(stx != -1)length = j-stx;
}else if(stx > j || j >= stx+length || sty > i || i >= sty+length){
}else{
return "NO";
}
}
}
}
return "YES";
}

}


2問目。ショット率が良い人が最優先で、同率であれば身長が高いほうが最優先される。
まずこれをソートするプログラムを書く。
その後、優先度が高い順からp人コートに入り、入った時間が同率であれば、
優先度が低い順から出て行く。入っていく方は休んでる時間が長いほうが優先で、
優先度が高い人が入る。これをM回ローテした時に、コートに残ってるプレイヤーを名前順にソートせよ。


import java.util.*;
import java.io.*;

import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

public class Teams {

public static void main(String args[]) throws Exception{
Scanner input = new Scanner(new FileReader("./iothings/basketball_game.txt"));
PrintWriter pw = new PrintWriter(new FileWriter("./iothings/output.txt"));
int n = input.nextInt();
input.nextLine();
for(int i = 0 ; i < n ; i++){
int N = input.nextInt();
int M = input.nextInt();
int P = input.nextInt();
MyPair[] mp = new MyPair[N];
for(int j = 0 ; j < N ; j++){
mp[j] = new MyPair();
mp[j].setThird(input.next());
mp[j].setFirst(input.nextInt());
mp[j].setSecond(input.nextInt());
}
Arrays.sort(mp);
ArrayList Ateam = new ArrayList();
ArrayList Bteam = new ArrayList();
int count = 0;
for(int j = mp.length-1 ; j >= 0 ; j--){
if(count % 2 == 0){
Ateam.add(mp[j]);
}else{
Bteam.add(mp[j]);
}
count++;
}
String[] str = num(N,M,P,Ateam,Bteam);
pw.print("Case #"+(i+1)+": ");
for(int j = 0 ; j < str.length ; j++){
if(j != str.length-1){
pw.print(str[j]+" ");
}else{
pw.println(str[j]);
}
}
}
input.close();
pw.flush();
pw.close();
}
public static String[] num(int n,int m,int p,ArrayList Ateam,ArrayList Bteam){
int[] Anow = new int[p];
int[] Bnow = new int[p];
int A_LENGTH = Ateam.size();
int B_LENGTH = Bteam.size();
int indexer = p-1;
for(int i = 0 ; i < p ; i++){
Anow[i] = i;
Bnow[i] = i;
}
Queue Aqueue = new LinkedList();
Queue Bqueue = new LinkedList();
for(int i = p ; i < A_LENGTH ; i++){
Aqueue.add(i);
}
for(int i = p ; i < B_LENGTH ; i++){
Bqueue.add(i);
}
for(int i = 0 ; i < m ; i++){
if(Aqueue.isEmpty()){
Anow[indexer] = indexer;
}else{
Aqueue.add(Anow[indexer]);
Anow[indexer] = Aqueue.poll();
}
if(Bqueue.isEmpty()){
Bnow[indexer] = indexer;
}else{
Bqueue.add(Bnow[indexer]);
Bnow[indexer] = Bqueue.poll();
}
indexer--;
if(indexer < 0)indexer = p-1;
}
String[] str = new String[p*2];
for(int i = 0 ; i < p ; i++){
str[i*2] = Ateam.get(Anow[i]).getThird();
str[i*2+1] = Bteam.get(Bnow[i]).getThird();
}
Arrays.sort(str);
return str;
}
}

class MyPair implements Cloneable,Comparable>, Serializable {
private static final long serialVersionUID = -553348920790587668L;
@Override
public MyPair clone() {
try {
return (MyPair) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(e);
}
}
public MyPair(){
}
private S first;
private T second;
private String third;
@SuppressWarnings("unchecked")
public MyPair(MyPair p) {
first = (S) p.getFirst();
second = (T) p.getSecond();
}
public S getFirst() {
return first;
}
public void setFirst(S first) {
this.first = first;
}
public T getSecond() {
return second;
}
public void setSecond(T second) {
this.second = second;
}

public String getThird() {
return third;
}
public void setThird(String third) {
this.third = third;
}
@Override
public boolean equals(Object obj) {
if (obj == this) { return true; }
if (!(obj instanceof MyPair)) { return false; }
MyPair pair = (MyPair) obj;
if (first == null) {
if (second == null) {
if (pair.first == null && pair.second == null) { return true; }
return false;
}
if (pair.first == null) { return second.equals(pair.second); }
return false;
}
if (second == null) {
if (first != null) {
if (pair.second == null) { return first.equals(pair.first); }
return false;
}
}
return first.equals(pair.first) && second.equals(pair.second);
}
/**
* hashcode
*/
@Override
public int hashCode() {
int result = 17;
result *= 31;
if (first != null) {
result += first.hashCode();
}
result *= 31;
if (second != null) {
result += second.hashCode();
}
return result;
}
@Override
public String toString() {
return "[" + (first != null ? first : "null") + ", " + (second != null ? second : "null") + "]";
}
@SuppressWarnings("unchecked")
public int compareTo(MyPair o) {// Comparable>
Comparable f = null;
Comparable s = null;
try {
f = (Comparable) first;
s = (Comparable) second;
} catch (ClassCastException e) {
throw new IllegalStateException(e);
}
if (f == null || s == null || o == null) throw new NullPointerException();
int c = f.compareTo(o.first);
if (c != 0) {return c; }
return s.compareTo(o.second);
}
}


3問目。テニスでKセット先に先取したいが、晴れの日の勝率と、雨の日の勝率がある。
最初の試合が晴れの確率、試合に勝った時に晴れの確率が上がる割合、上がる確率、
試合に負けた時に晴れの確率が下がる割合、下がる確率が与えられている時、
Kセット先取できる確率を求めよ。

気分もいいので、渋谷のハンズでDDRメタルパッドのネジを超低頭ネジに変更するためのネジを
大量購入した。

その後は渋谷タイトーステーションで筐体めぐり。
腱鞘炎ステーションと言われるだけに鍵盤が重い。
その後はDDR、リフレクと1クレずつ。

帰宅後はネジの交換をしました。これで一応痛くなくはなった。
でもやっぱり発狂は靴なしだと踏めない気がした。

真夜中にE-4に少し突撃しました。
順調に撃破と思いきや、中盤大破連発するようになり・・・眠くなり・・・やめました。

  by ddrer-yossi | 2013-11-25 23:54 | DDR | Comments(0)

祭りの打ち上げとか、Codeforces #214とか

今日は建造で鬼怒が出ました。

f0019846_627358.png


その後は県内某所の祭りに参加。
参加前にハンズに寄ってネジを買いました。

もう演技する側ではなく、観る側です。

お昼は声優さんが来るイベントにも。
f0019846_671287.jpg

真ん中の最前線という、オタクなら羨ましがる席でした。

19時、終了後にお疲れ様会しました(画像全滅)

帰宅後にやらなきゃいいのにCodeforcesに参戦。
酒飲みコーディングでよく理解してない状態でAを提出してwrongを得る(死

  by ddrer-yossi | 2013-11-24 23:03 | codeforces | Comments(0)

19轟沈提督

10時半に某所に着く予定が、快速乗り換えを忘れる。
しかし、各駅で着いた後に走りこむことでキャッチアップした。
祭りで色々と知り合いのところを巡る。

その後は疲れきった中艦これのデイリーをやってしまう。
2-2で、19大破進軍したらしく、戻った時(起きた時)には5隻になってました。
しまったぁぁぁ!

辛い中の帰宅ですが、ネジも見ておこうということで、ハンズへ寄る。
取り敢えずこれかなーというのを買った。低頭ネジじゃないけど。

  by ddrer-yossi | 2013-11-23 23:10 | 日常生活 | Comments(0)

Facebook Hacker Cupに出る

今日は朝8時に起きて朝食を摂りつつ艦これ。
9時にFHCが始まり、昼ぐらいまで考えていました。
問題の難易度に関しても、恐らく触れてはいけないので、このぐらいしか書けません。
一応リンク貼りますね。

その後は夕方に靴を履いてDDRをやる。
メタルパッドの音が思った以上にうるさい。
これは靴のせいか・・・と不安になる。
結局丸ネジの頭が足に引っかかって凄く痛いので、
全部平ネジに換装しておく必要があると感じた。
ホームセンターなり、ハンズなり寄ってかないと。

夜はピザを注文した。
ドミノ・ピザですが、まず最初に安いピザを注文、
2回目にクイズで50%引いた上で本命のピザを注文する手段をとりました。
というか今までやってこなかったのが完全に敗北してる感じ。

今まで Lサイズ*2の20%引き → (4000+4000)*0.8 = 6400
今回 Mサイズ+Lサイズ*2+サイドメニュー → 2000*0.8 + (4000+4000)*0.5+1400 = 7000
ピザ1枚とサイドメニューつけても600円しか変わりません。
しかもサイドメニューつけないと下のほうが安いという。
このクイズ、かなり昔から続いているので、ドミノ・ピザさんも恐らくわかっているんじゃないかなあ。
多分これでも元が十分取れるからできるんでしょうけど、二度配達させてしまうことになります。

f0019846_1183620.jpg


f0019846_1185133.jpg


f0019846_119366.jpg


f0019846_1191612.jpg


食べきられるはずもなく、残りは冷凍庫へ。

夜はゲーセンへ。100均でネジ見たけどなかった。

f0019846_114488.jpg

empathyフルコン。

f0019846_115881.jpg

サンパラ。ここまで攻められたのにAAA+乗らず。

f0019846_1153667.jpg

IDM。一気にBP10

f0019846_116797.jpg

DDR。スコアだいぶ伸ばした。HS2.0なのでbag地帯みえない。

f0019846_1163577.jpg

ラメント。難しい。

最後にdivaを2クレ。
f0019846_117152.jpg

Freely tomorrow。

スライド難しいね。下手にタイミング合わせる必要はなく、早めでも大丈夫そうでした。
このスライドに釣られて他の部分で崩れやすくなってます。音消したい。

夜は、3-2攻略に挑みました。3回ほどで単横、単横、単縦でクリア。
後から聞いた話ですと、道中は複縦が良いということ。
f0019846_6203410.png

  by ddrer-yossi | 2013-11-22 23:57 | 日常生活 | Comments(0)

自宅にメタルパッドが届きました。

今日はお昼ごろに配達があり、ついに届きました。
というか早っ・・・18日に注文したばかりなはずなのに、3日で届いてしまった。

f0019846_1524283.jpg

持ってみて当たり前ですが非常に重いです。15.8kgの鉄の板…。

取り敢えず何も設定せずにプレー。
予想通り遅延だらけ。ひどいのでタイミングアジャストメントで調整。
+6.0にしてもダメなので、譜面のほうも調整することに。
結局+5.2設定から+6.0,-1.6~2.0設定で落ち着きました。

プレーした結果がこれ。取り敢えず靴下でプレーしても、ネジ山に引っかかって痛いですね。
ネジだけホームセンターで買って交換しようかしら。
それまでは靴でプレーしてみようかなと思います。

f0019846_1553653.jpg

結果だけ見れば上々かな?

夕方は歯医者へ。漸く詰め物の型を取る段階へ。
その後はゲーセンへ向かう。
グルーヴコースターが設置されてました。

そんなことは構わず取り敢えず弐寺へ。

f0019846_1564524.jpg

Beautiful Angelフルコン
f0019846_1573833.jpg

Karmaフルコン。これはなかなか難しい。

その後はリフレク。
f0019846_1582629.jpg

GAIA更新。フルコン遠そうに見える。

その後はカードを購入してグルーヴコースターを1クレ。
f0019846_1585587.jpg

うん、やっぱりアレにしか見えないね・・・。

その後はサンボルを8クレ。
KAC課題曲っぽいリストがあったので、全部それでやっていく。
が、一つどうしても無理なのがあった。レモンサマーが恐ろしく難しい。
GEROLもなかなか。

f0019846_225555.jpg


f0019846_231561.jpg


f0019846_232911.jpg


f0019846_242839.jpg

何回やっても無理でした。

その後はポップン。
f0019846_261036.jpg


wow wow venus
f0019846_262827.jpg


EXもフルコン。
f0019846_264518.jpg


こっちは奪還
f0019846_27455.jpg


お、おう・・・。
f0019846_272016.jpg


気合で華陽炎EX埋める。いい写真なかった。
f0019846_28466.jpg


メタルフロウも埋めていく。
f0019846_283739.jpg


帰宅前にボジョレーヌーボーを購入する。
1000円未満だとペットボトル仕様なのね。
なんだか残念なきがしたので1980円のもので。
どうせワインの味あんまりわかんないんだけどね…。

飲んでみた感想ですが、通常ワインより渋みがなく飲みやすいです。
反面飲み過ぎそうな危険性がありそう。

  by ddrer-yossi | 2013-11-21 23:47 | 日常生活 | Comments(0)

SEM SKIN - DESIGN by SEM EXE