SRM 497の回答をC#で書き直してみた
id:chokudai先生の真似してC#で参戦できないかなーと思案中。
Parallels上のWindows 7にVisual C# Expressを入れてみました。プロジェクト名がnamespaceになったり余計なusingが入るのって制御できないのかなー。
Div2 Easy: Filtering
using System; class Filtering { public int[] designFilter(int[] sizes, string outcome) { int max = int.MinValue; int min = int.MaxValue; for (int i = 0; i < sizes.Length; i++) { if (outcome[i] == 'A') { max = Math.Max(max, sizes[i]); min = Math.Min(min, sizes[i]); } } for (int i = 0; i < sizes.Length; i++) { if (outcome[i] == 'R' && min <= sizes[i] && sizes[i] <= max) { return new int[0]; } } int[] res = { min, max }; return res; } }
Div2 Medium: PermutationSignature
using System; class PermutationSignature { public int[] reconstruct(string signature) { int[] res = new int[signature.Length + 1]; int[] stack = new int[signature.Length + 1]; int stackpos = 0; int pos = 0; int cur = 1; stack[stackpos++] = cur++; for (int i = 0; i < signature.Length; i++) { if (signature[i] == 'I') { while (stackpos != 0) res[pos++] = stack[--stackpos]; } stack[stackpos++] = cur++; } while (stackpos != 0) res[pos++] = stack[--stackpos]; return res; } }
うむ
自分としてはきれいに書けて満足。クラスライブラリを全然知らないからスタックも配列で実装しました。
Hard問題にもそろそろ挑戦しようかな。