kotonoha_pcg@気ままに雑記

kotonoha_pcgが気分次第で様々書き置きます.dlang関係他:http://kotonoha-pcg.hatenadiary.com

KALI Linux 2.0 導入

先日(8/11)にペネトレーションテストに特化したLinuxディストロのKALI Linuxが2.0にアップデートされたので,早速導入してきました.この投稿もKALI Linux内のIceweaselで書いています.

ダウンロードと焼き

 当日にダウンロードしていたのですが,どうやらDDoS攻撃があったようでものすごく遅いダウンロード速度でした.これも先日買ってきたデスクトップPC(Lubuntu14.04LTS導入済み)を用いると自分のネットワーク環境としてはそこそこ普通の速度が出たので,今朝ダウンロードしてました.UNetbootinを用いて.isoをUSBメモリに焼いてインストールしました.

インストール

 インストール自体はいつも通りのDebian系のインストールだったのですが,なぜか起動してそのままInstallを選択すると,CD-ROMの検出で止まってしまいました.なので,一旦Live DVDで起動してから,再度アプリケーション内からインストールをやっていました.そのままの状態で起動すると画面に対して大きくインストール画面のサイズがずれたので,一度マルチタスク画面に行ってからインストール画面を選択し,最大化して合わせることができました.

日本語入力環境

 ある意味最大の問題です.iBus-anthyをインストールしてから(KALI Linux 日本語化 で調べると出てくるサイトの方を参考にしました),色々試しつつもなぜか入力できなかったのですが,弄っててタスクバーの入力メソッドを「Japanese」から「Japanese(Anthy)」にした途端に日本語入力ができるようになったので,そこら辺が関わっているんだと思います.

エディタ

 私は一応Vim使いなので,自分の.vimrcをあらかじめドライブに上げておいたものを落として,それを/rootに移動させました..gvimrcも同様の手段で入れ終わりました.vimは端末内で起動するのですが,大きさは端末そのもののプロファイルから設定すれば良いのでさほど問題ではありませんでしたが,問題は見た限り新しいタブを表示させる設定を見つけられませんでした.これはCtl+Shift+tで解決できるようです.

デスクトップ環境

 今回もGNOMEデスクトップが採用されています.ただ,1.1.0aまでと変化しているのは,左側にドックが配置され(ここは普通のGNOMEと同じです),今までのアプリケーションメニューは基本的にペネトレーションツール「のみ」になったことでしょうか(但し,一番下の"Usual applicationsを選択すると,普通のアクセサリなども選択できるようになります).トレイラーの時点で薄々予想していたのですが,意外と使ってみると良い感じです.

全体的に

 UIは個人的にはかなり使い易くなったかな,というところです.まだAdobe Flashなどは導入していないので,この後導入を試みます.

現状

現状です,酷すぎる.

8/8

 筑駒の技術室奥コンテストに遅れて出る.結果:A完
 
 ABC#027に定刻通り間に合う.結果:0完
 

8/11

 CF#315(Div2),.vimrcの書き換えやりながら出る.結果:0完


色々酷すぎて逆に凄い気がしてきた.もうすぐ競プロ始めてから1年半経つけど,今まで以上に問題が解けない・英語が読めない・方針建てられない の3コンボが決まっている.ほぼぴったり4週間前なのは分かっているんだけど,一向に進みそうに無いので,一旦PCKのことを忘れることにします(ちゃんと出ます).

近況

流石に残り2ヶ月切るし実力とかクソなので問題真面目に解きます

以上.ちょっと一週間に1~2問はこの時期にしては酷いことが自覚できてきたのでなんとかします(まぁでもPCKだけが全てじゃないし,今年もやるのであれば勿論k4pcとかCODE RUNNERとか(こっちは実力踏まえて検討中)参加したいので,なんとか問4までは安定して解けるようになりたい).

AOJ ITP1_7_C Spreadsheet

先週アドバイスを貰いながら書いきました.久々に(いやまぁ2~3日振りくらいなんですけど)自分で方針を立てて核心以外は書くことが出来て良かった.残念なぐらい二次元配列への入力の仕方を忘れていてそこから躓いたので改善したいところです.

概要

 行数r列数cから構成されるr*cの表が与えられる.この各行と各列の合計を出力する.

入力

 r*cの表が与えられる.

出力

 R+1*c+1の大きさの表を出力する.

#include <iostream>
using namespace std;
const int MAX_N = 100;
typedef long long lint;

int main() {
	int r,c;
	int a[MAX_N+1][MAX_N+1]={0};
	int sum=0;
	//in
	cin>>r>>c;
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			cin>>a[i][j];
		}
	}
	//summer
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			a[i][c]+=a[i][j];
			a[r][j]+=a[i][j];
			sum+=a[i][j];
		}
	}
	a[r][c]=sum;
	//out
	for(int i=0;i<r+1;i++){
		for(int j=0;j<c+1;j++){
			if((j==c)){
				cout<<a[i][j];
			}else{cout<<a[i][j]<<" ";}
		}
		cout<<endl;
	}
	
	
	return 0;
}
//if began
/*
1 1 3 4 5 14 
2 2 2 4 5 15 
3 3 0 1 1 8 
2 3 4 4 6 19 
8 9 9 13 17 56
*/
//if
/*
1 1 3 4 5 14
2 2 2 4 5 15
3 3 0 1 1 8
2 3 4 4 6 19
8 9 9 13 17 56




*/

 ソースコードは至ってシンプルで,入力した各行の最後にその行の合計値を代入.列についても同等.sumに今までのすべての値を代入しておく.a[r][c]へsumに代入しておいた値を代入.最後に列の最後尾かどうかを判定し,もし最後尾ならば空白を開けずに改行させ,そうでない場合は逆の処理をさせる,でなんとか書けました.また,下のコメントアウトされている個所は,//outでif文による最後尾判定を追加したかしないかの結果をコピペしました.//if began(適当固有名詞兄貴オッスオッス)では,1~4行目は最後尾でも空白を開けての改行を行っていましたが,//ifから下にある結果は,すべての行について最後尾では空白を開けていません.

 多次元配列の扱い方について忘れていたり,見落としていた箇所はありましたが(a[r][j]+=a[i][j];の部分はなんでくなるのか分からなかった),自分で方針立てて実装できるとやっぱりうれしかったです.