kmjp's blog

競技プログラミング参加記です

AtCoder ARC #016 : A - クイズゲーム、B - 音楽ゲーム

ARC016に参加。
A,Bはサクサク解答、Cは部分点を稼ぎつつ最後はACをとれた。
Dは時間切れで解答しきれず、standing1ページ目に残れなかった…。
http://arc016.contest.atcoder.jp/tasks/arc016_1
http://arc016.contest.atcoder.jp/tasks/arc016_2

A - クイズゲーム

N個の問題があり、そのうちM番目が正解である。
不正解の問題番号を1つ答えよ。

M==1なら2を、そうでないなら1を答えればよい。

int N,M;

void solve() {
	cin>>N>>M;
	if(M==1) _P("%d\n",2);
	else _P("1\n");
}

B - 音楽ゲーム

音ゲーの譜面が文字列で与えられる。
途中、譜面中にxが出るたびにそのボタンを押す。
また、連続するoooooは1回だけボタンを押す。
譜面に対してボタンを押す回数を求めよ。

xの数は単純にカウントし、oは直前がoでない場合のみカウントすればよい。

int N,M;
string S[101];

void solve() {
	int f,i,j,k,l, x,y;
	cin>>N;
	FOR(i,N) cin>>S[i];
	f=0;
	FOR(i,N) FOR(j,9) if(S[i][j]=='x') f++;
	FOR(j,9) FOR(i,N) {
		if(S[i][j]=='o' && (i==0 || S[i-1][j]!='o')) f++;
	}
	_P("%d\n",f);
}

まとめ

今回もBまでは簡単だね。