今日は朝早起きし、8時よりGoogle Code Jam Qualification Roundに参戦。
この中身自体は2019/05/04に書いています。(つまり結果発表よりずっと後)
Foregone Solution
とある整数が与えられるので、それを4を含まない形式に2つに分けてほしい。
ただしA,Bは正の整数とし、0-leadingはなしとするという感じ。
条件分岐しまくって汚いなーと思いながらも通した。
import java.io.*;
public class Solution {
static PrintWriter pw;
public static void main(String args[]) throws Exception{
BufferedReader stdReader = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(stdReader.readLine());
for(int i = 0 ; i < T ; i++){
String s = stdReader.readLine();
String resA = "";
String resB = "";
boolean one = false;
for(int j = 0 ; j < s.length(); j++) {
if(one) {
int now = Character.digit(s.charAt(j), 10) + 10;
int res = now / 2;
resA += now - res;
resB += res;
one = false;
}else if(s.charAt(j) == '5') {
resA += "3";
resB += "2";
}else if(s.charAt(j) == '1') {
if(j != s.length() - 1) {
if(j != 0) {
if(s.charAt(j + 1) == '9') {
resA += "10";
resB += "09";
j++;
}else {
resA += "0";
resB += "0";
one = true;
}
}else {
one = true;
}
}else {
resA += "1";
resB += "0";
}
}else if(s.charAt(j) == '0') {
resA += "0";
resB += "0";
}else {
resA += Character.digit(s.charAt(j), 10) - 1;
resB += 1;
}
}
System.out.println("Case #"+(i+1)+": "+resA+" "+resB);
}
stdReader.close();
}
}
You Can Go Your Own Wayは、NxNの平面があり、左上から右下までのルートをライバルのLydiaがまったく使っていない
ルートを使って右下まで行きたいという問題。
単純にLydiaの使ったルートと違う動きをすれば良い。右か下しかいかないので、
Lydiaが右に行けばこちらは下を、下にいけばこちらは右を選んでいけば良い。
しかし、文字列の連結には要注意でした。(ここで落ちた
import java.io.*;
public class Solution {
public static void main(String args[]) throws Exception{
BufferedReader stdReader = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(stdReader.readLine());
for(int i = 0 ; i < T ; i++){
int N = Integer.parseInt(stdReader.readLine());
String s = stdReader.readLine();
StringBuilder sb = new StringBuilder();
for(int j = 0 ; j < s.length(); j++) {
if(s.charAt(j) == 'S') {
sb.append("E");
}else {
sb.append("S");
}
}
System.out.println("Case #"+(i+1)+": "+sb.toString());
}
stdReader.close();
}
}
Cryptopangramsは、N以下の整数で構成される素数を用いて、
各素数を小さい順にA to Zに割り当てて、L+1個の要素を持つ配列が与えられる。
前の文字に割り当てられた素数 * 次の文字に当てられた素数といった感じの要素を持つ場合、
元の文字列を復元せよという問題。
とりあえずSmallは通したいという一心でやっていたが、一向に通らず、時間になったので諦めた。
そして新居に向かい、ランニングマシーンなど荷物を受け取る。
天井吹き抜けが一部あり
リビングはこんな感じです。(風景非公開
終わり次第ゲーセンに。
まずはボルテ。 I EXH 9664104 AA+ Uクリア
♥LOVE2 シュガ→♥ WH 97.3% AAA+ フルコン
♥LOVE2 シュガ→♥ HARD 99.3% S フルコン
Honey Party HARD 96.5% AAA+ フルコン
CODE:2 HARD 91.8% AAA フルコン
jubeatはNEVER SURRENDER EXTREME 947767 S HARD
[A]ddiction EXTREME 959607 SS HARD
非公開日誌 EXTREME 962910 SS HARD
beatmaniaはEMERALDAS NをフルコンAAA
ついにArenaを終了し、おおきなこえで†を解禁。
夜は片付けつつ、IKEAの机を分解しました。MALMという割と巨大種なので二人でやりつつ・・・。
カムネジに苦闘しながらもなんとか一部分分解に成功しました。とても疲れた…。