仕事後codeforces

今日もお仕事でした。

お昼はきのこペペロンチーノ。
超絶珍しくも、量を並にしました。(いつもはメガ以上確定)
別に食欲がなかったわけではなく、なんとなく減量しなければならないという危機感がありました。
f0019846_13114683.jpg


仕事後はゲーセンへ。
jubeatは1クレで終了。
Bemaniは2クレ。KeyとかRaspberry heartだったかをフルコンしました。
徐々に難易度7,8あたりのフルコンが増えてきています。9はquasar(H)のみですが。

f0019846_13152790.jpg


その後は意味もなく本厚木まで行ってみました。
戻った後ははじめてPASELIを利用してみました。
地元ゲーセンが4曲90P設定なのです(`・ω・´)
この設定のうちに実力を伸ばしていきたいのが本音ですね。

そして夜中2時からのcodeforces。
参加するか迷ったのですが、参加してしまいました。

1問目は、問題文を把握するのに時間がかかってしまう。
わかってしまえば、点と点の距離を合計して、50とかで割るだけの簡単なお仕事でした。
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int k = input.nextInt();
int[] x = new int[n];
int[] y = new int[n];
for(int i = 0 ; i < n ; i++){
x[i] = input.nextInt();
y[i] = input.nextInt();
}

System.out.println(sign(n,k,x,y));
}
public static double sign(int n,int k,int[] x,int[] y){
double sum = 0.0;
double prevx = x[0];
double prevy = y[0];
for(int i = 1 ; i < n ; i++){
sum += Math.sqrt((x[i]-prevx)*(x[i]-prevx)+(y[i]-prevy)*(y[i]-prevy));
prevx = x[i];
prevy = y[i];
}
return (sum/50)*k;
}

}

2問目は問題文の把握は速攻で終わる。
ソートして、ペアの数を見つけて2で割るだけ。

import java.util.*;

public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] k = new int[n];
for(int i = 0 ; i < n ; i++){
k[i] = input.nextInt();
}

System.out.println(frame(n,k));
}
public static int frame(int n,int[] k){
Arrays.sort(k);
int prev = k[0];
if(n == 1)return 0;
int count = 0;
for(int i = 1 ; i < n ; i++){
if(prev == k[i]){
count++;
prev = -1;//impossible
}else{
prev = k[i];
}
}
return count/2;
}

}


この後ハッキングしてみるが、うまくいかず50点減点。
これが結構痛いことになるんですがね。

3問目はめんどくさそうなので4問目へ。
これ結構簡単にいけるんじゃねと思い、20分ほどでうまく行ったので提出。
が、そこに待っていたのはTLEの罠でした。
書いていたコードはこうです。

import java.util.*;

public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
System.out.println(str(s));
}
public static String str(String s){
String decode = "";
for(int i = 1 ; i < s.length() ; i++){
String sub = s.substring(0,i);
if(s.endsWith(sub) && s.indexOf(sub,1) != -1 && s.indexOf(sub,1) != s.length()-sub.length()){
decode = sub;
}
}
if(decode.equals("")){
return "Just a legend";
}else{
return decode;
}
}

}

for文1回なのでオーダがnにも見えるようですが、これではダメなようです。
解決法は考えていません。

その後Cに取り掛かり、普通にやるとTLEすることは把握していたので、
色々と工夫してみたものの、結局時間切れ。

結果は2問-50で、レーティングも落ちてしまいました。
あと一歩が足りない。

iBTの結果がネットで参照できるようになりました。
結果はこうです。
reading 17/30
listening 10/30
speaking 8/30
writing 11/30
= 46/120

正直ゴミみたいな成績ですが、初回は大体こんなもんじゃないでしょうか。
あれでスピーキング8点もあるんだという驚きも。
問題はlistningが低すぎるということか。
最近はウォークマンでDUOの復習用CDとか、
TOEFL ReadingについているCDとかを聞いています。
後は語彙力を増やすためにSUPER英単語というiPadのアプリを使ってみています。
Speakingを徹底的にやる時間はないので。
これ以外にもやることが多すぎるんですね・・・。

  by ddrer-yossi | 2011-11-09 23:05 | codeforces | Comments(0)

<< project diva ex... 久しぶりのジャグリング記録の更新 >>

SEM SKIN - DESIGN by SEM EXE