88
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

今流行りのエディタSublimeText2を使って、AOJで競技プログラミングを楽しもう

Last updated at Posted at 2013-01-19

どんな言語が使えるの?

使用できる言語は C, C++, C#, C++11, D, Java, Python, Ruby, PHP, JavaScript

SublimeText2って何?

今流行りのテキストエディタ、まだ使って無い人はここを見てその素晴らしさに開眼しよう
Sublime Text 2ってエディタがすごくイイ。Dreamweaverから乗り換えた時の初期設定とか使い方とかをメモ
リンク切れたようなので違うサイトを紹介
@Accent さんありがとうございます。
”恋に落ちるエディタ”「Sublime Text」 完全入門ガイド!

AOJって何?

Aizu Online Judgeの略
出題される問題をプログラムを組んで解き、合否を判定してくれるサイト
問題のタイトルは英語だけど、中身は日本語もあるので即Uターンだけはどうか勘弁してやってください

はじめに

SublimeText2のインストール
AOJのアカウント作成
この2つをやっておいてください

SublimeText2のPluginをインストール

Aizu Online Judge のPluginをインストールします
インストール方法はリンク先のREADMEを見てください
settingsファイルのUserNameとPasswordの変更をお忘れなく

問題を解いて、AOJにsubmitする

・問題の選択
PROBLEMにカーソルを合わせると問題セットが出ます
まずはその中にあるVolume10010000:Hello Worldを解いてみます
問題

・プログラム作成
SublimeText2を開いて、ctrl+shift+pでCommand Paletteを表示し
AizuOnlineJudge: Create Fileを選択、下にInput Panelが表示されるので使用する言語を入力します
右下を見て使用する言語になっているか確認してください、この例ではRubyを使っています
syntax

・AOJにsubmit
ctrl+shift+pでCommand Paletteを開きAizuOnlineJudge: Submit for Promptを選択、Input Panelにこの問題のProblemNo 10000を入力します

ファイルを保存しながらやりたい場合は、ファイル名にProblemNoをつけてAizuOnlineJudge: Submitを使うとファイル名から判断してsubmitします

・Volume0とか問題文英語だよ?
メンドクサイけどJapanese version hereから日本語問題へジャンプしてください
日本語

・人のソースが見たい
右上の虫眼鏡のアイコンをクリックするとアカウント作るときにSource Code Policy:publicを選択した人のソースを見られます
ソース

説明は以上です、れっつえんじょいAOJらいふ!

コンパイラとシステムの詳細

言語 コンパイラ
C gcc 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC)
C++ gcc 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC)
C++11 gcc 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC)
JAVA java: version 1.6.0
C# C# mono 2.10.5
D DMD64 D Compiler v2.059
Ruby Ruby 1.8.7
Python Python 2.7.2
PHP PHP 5.3.14
JavaScript Node.js 0.8.16

Tips

・入力は入力関数を使う
・順番に出力~と書かれていてもすべて入力してから出力する必要はありません、順次出力してOK
・複数行のスペース区切りを取得する方法

C
while( scanf("%d %d", &a, &b) != EOF )
C++
while( cin >> a >> b )
Java
Scanner sc = new Scanner(System.in);
while( sc.hasNext() ){
	String[] line = sc.nextLine().split(" ");
	int a = Integer.parseInt(line[0]);
	int b = Integer.parseInt(line[1]);
}
C#
string line;
while ( !string.IsNullOrEmpty(line = System.Console.ReadLine()) ) {
	string[] ab = line.Split(' ');
	int a = Convert.ToInt32(ab[0]);
	int b = Convert.ToInt32(ab[1]);
}
D
while( readf("%d %d\n",&a,&b) ){
}
Ruby
# nilの時0を返すので、whileの条件でgets.to_iはしない
while line = gets do
	a,b = line.split.map(&:to_i)
end
Python
for line in sys.stdin.readlines():
    a,b = map(int, line.strip().split())
PHP
while( TRUE ) {
	fscanf(STDIN, "%d %d", $a, $b);
    if( feof(STDIN) )
        break;
}

・複数行のカンマ区切りを取得する方法

C
scanf("%d,%d", &a, &b)
C++
int a, b;
char c;
// cはカンマを抜く為の変数
cin >> a >> c >> b
Java
Scanner sc = new Scanner(System.in);
while( sc.hasNext() ){
	String[] line = sc.nextLine().split(",");
	int a = Integer.parseInt(line[0]);
	int b = Integer.parseInt(line[1]);
}
C#
string line;
while ( !string.IsNullOrEmpty(line = System.Console.ReadLine()) ) {
	string[] ab = line.Split(',');
	int a = Convert.ToInt32(ab[0]);
	int b = Convert.ToInt32(ab[1]);
}
Ruby
line = gets
a,b = line.split(',')
Python
line = sys.stdin.readlines()
a,b = map(int, line.strip().split(','))

DとPHPのカンマ区切りの上手い方法がわからなかったので、誰か編集リクエストくれたらとっても嬉しいな
これよりこっちのほうがいいよ、もよかったら教えてください

88
85
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
88
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?