ないものは作りましょう。

色々なことに挑戦(主にプログラミング)

Google Code Jam 2015 Qualification Roundに参加しました

GCJ初参加しました。

結果は A-small, A-large, B-smallで26ptsでした。なんとか予選通過できたようです。f:id:IJMP320:20150412223245p:plain

Round1はAとBとCのどれか2つに参加できて、上位1000位に入ればRound2に進めるようです。
進めるかわかりませんが、とりあえず頑張ろうと思います。
訂正:Round1はRound2進出が決定するまでA,B,Cすべてに参加できるようです。
(ご指摘ありがとうございました)

続きを読む

Ubuntuでファイルをゴミ箱に移動できなくなった

何をしたのか原因がわからないのですが、ファイルを削除しようとしてもゴミ箱に移動できなくなっていました。解決したので書いておきます。

原因

削除しようとしているファイルの書き換え権限が無いとゴミ箱に移動できないらしいのですが、
自分の場合はTrashフォルダのアクセス権限がないことが原因でした。

Ubuntuのゴミ箱の場所↓

/home/<user名>/.local/share/Trash/

解決法

chownコマンドを使ってTrashフォルダの所有者を自分に書き換えます。

$ cd ./local/share/
$ sudo chown -hR user名:user名 Trash

terminalを閉じ、ログインしなおせば無事解決です。

CodeFoces Round294 Div2

結果:2完
レーティング:1257→1198(-59)

灰コーダーに落ちてしまいました(泣)
今回はA,B問題をACして2完でした(時間がかかりすぎたのが悪かったな)

続きを読む

Conkyカスタマイズ - 時計を作ってみた

Linuxのデスクトップに情報を表示するアプリにConkyというものがあるのですが、このConkyをカスタマイズしてみました。
f:id:IJMP320:20150224233721p:plain f:id:IJMP320:20150224233729p:plain
(左:Before 右:After)
Conkyは一から書き上げるのはかなり大変なので、GUIで設定できるConkyManagerのサンプルを使用しています。

デスクトップにアナログ時計が欲しかったことと、"ETHERNET"のメーターが全く必要なかったので、
ETHERNETのメーターを削り、その分を下に詰めて空いた上の部分に時計を置きました。

Conkyはかなり細かいことができて、Luaスクリプトで描画することができます。工夫すればGoogleカレンダーの予定を表示とかもできると思います。
Luaは初だったので見様見真似で書きました。

正確にはCairoという描画ライブラリで描画しているらしいのですが、Cairoがなかなかわかりやすかったです。
C++とか他の言語でも使えるらしいので今度GUIに挑戦する時にでも使ってみようかな)

Cairoの描画は↓を参考にしました。
http://www.iim.cs.tut.ac.jp/~sugaya/books/GUI-ApplicationProgramming/files/GTK-book-chapter6.pdf

Conkyの設定ファイルとLuaスクリプトファイルをDropBoxに置いておきます。
Dropbox - Conky Seamod Clock Ver.zip


それではー。

TopCoder初参加録 - SRM649 Div2

11日1:00から始まったSRM 649 Div2に参加しました。
今回がSRM初参加でした。(TopCoderは少し前に登録していたのですが、参加していなかった)

結果は…
0完でした。

英語の問題を解くのに慣れていないということもあったのですが...(言い訳)


Easyは、文字列Sと文字列Tが与えられ、Sから1文字削除したときTに成り得るかを出力する問題でした。
適当に書いてテストして提出したのですがチャレンジフェーズで落とされてしまいました。
(結局このとき提出したコードはSystem Testでも落ちたのですが。)


Medium問題は問題を理解するのに時間がかかりました。終了10分前位でやっと問題文の意味がわかったのですが、実装が間に合いませんでした。


Hard問題はお手上げでした。


スコアは0で、初レーティングで852になりました。無色→灰色です。

地道にレーティングを上げていけたらなあと思います。

次回も参加してみたかったのですが、時間が日本時間で2015/02/18午前11時かららしいので参加できないと思います。
(海外のプロコンは時間がなあ。)


最後に、終わった後に解き直したEasyのコードを載せておきます。(無駄が多いコードだなあ)

#include <stdio.h>
#include <bits/stdc++.h>
#include <string.h>
using namespace std;

class DecipherabilityEasy {
    public: string check(string s, string t) {
        if((s.size() - t.size()) != 1) return "Impossible";
        bool f=false;
        for(unsigned int i=0, j=0; i<t.size(); i++, j++) {
            if(t[i] != s[j]) {
                if(f==true) {
                    return "Impossible";
                    break;
                }
                f=true;
                i--;
            }
        }
        return "Possible";
    }
};

Medeumはまだ解いていません。

幅優先探索

幅優先探索の問題をいくつか解いてみました。

幅優先探索はなかなか複雑になるので苦労しました。(もっと練習して慣れたい。)
実装力の無さを思い知らされました。

続きを読む