Markdown記述のテスト


問題文

[input.txt]には行数h、列数w、文字列S1,…,Shが書かれてます。
S1~Shは、#と (空白)から成るw文字の文字列です。
形式は以下の通りです。

[input.txt]
h w
S1
S2

Sh

ぬぬぬ君は[input.txt]を加工することで、0と1から成るテキストを作りたいです。
加工は以下の手順で行います。
①1行目(h wが書かれている行)を削除する
② (空白1文字)を0に、#を1に置き換える
③テキストを左90度回転する
④テキストを上下反転する

ぬぬぬ君はこの加工を手で行っていたのですが、疲れからか黒塗りの車に衝突してしまい、
手が使えなくなってしまいました。

そんなぬぬぬ君を見たあなたは、彼のテキスト加工を手伝うことにしました。

それでは、[input.txt]を加工し、加工後のテキストを[output.txt]に書き込む
プログラムを作成してください。ただし、リダイレクトを用いてはいけません。
すなわち実行形式は、
./a.out
または
~.exe
のようにします。

入力[input.txt]の制約

1 <= h, w <= 100

入出力例

例1

//input.txt
4 5
##  #
#  # 
 ## #
 # ##

//output.txt
1100
1011
0010
0101
1011
//手順1を終えたとき
##  #
#  # 
 ## #
 # ##

//手順2を終えたとき
11001
10010
01101
01011

//手順3を終えたとき
1011
0101
0010
1011
1100

//手順4を終えたとき
1100
1011
0010
0101
1011

例2

//input.txt
3 26
# ### #   # #   # ### #  #
# # # #   #  # #  ##  #  #
# ### ### #   #   ### #  #

//output.txt
111
000
111
101
111
000
111
001
001
000
111
000
100
010
001
010
100
000
111
111
101
000
111
000
000
111

JOI2012予選4「Hot Days」

解けたので、備忘録のため、コードを適当に貼ります(ひどい)。
コードの貼り方が分からないので、この記事は何回か更新されます。


#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

int d, n;
int t[200];
int a[200], b[200], c[200];
int dp[201][200];			//dp[day][fuku] = sumの最大値
int ans = -1145141919;

void makeAns(){
	int day, fuku, i;
	
	//初期化
	for( day = 0; day < d + 1; day++ ){
		for( fuku = 0; fuku < n; fuku++ )
			dp[day][fuku] = -114514;
	}
	for( fuku = 0; fuku < n; fuku++ ){
		if( a[fuku] <= t[0] && t[0] <= b[fuku] )
			dp[1][fuku] = 0;	//0日目に服fukuを着た場合
	}
	
	//dp配列の更新
	for( day = 1; day < d; day++ ){
	for( fuku = 0; fuku < n; fuku++ ){
	//day日目の服を決める(遷移)
	for( i = 0; i < n; i++ ){
		if( a[i] <= t[day] && t[day] <= b[i] ){
			//day日目に服iを着る
			dp[day + 1][i] = max(dp[day + 1][i], dp[day][fuku] + abs(c[fuku] - c[i]));
		}
	}
	}
	}
	
	//答えを計算する
	for( i = 0; i < n; i++ ){
		ans = max(ans, dp[d][i]);
	}
}

int main()
{
	int i, j;
	cin >> d >> n;
	for( i = 0; i < d; i++ ) cin >> t[i];
	for( i = 0; i < n; i++ ) cin >> a[i] >> b[i] >> c[i];
	makeAns();
	cout << ans << endl;
	return 0;
}

テスト投稿

  • 登録が簡単で驚いた
  • 公共の場なのでうかつなことを呟けない()
  • 窓を全開にした部屋と同じ
  • 初投稿 LANを飛び出す 緊張感 ネットリテラシー ネットリテラシー
既にネットリテラシーを守っていない気がする

このブログは、ソースコード置き場になる予定です。
有用性は皆無