SRM 404 DIV2 Level.2
ぐだぐたになったけどシステムテストパスしたからおk。
public class RevealTriangle { public int getAns(int a, int b) { int ret = 0; for (int i = 0; i < 10; i++) { if (a == (b + i) % 10) { ret = i; break; } } return ret; } public String[] calcTriangle(String[] questionMarkTriangle) { for (int i = questionMarkTriangle.Length - 2; i >= 0; i--) { String s = questionMarkTriangle[i]; String s2 = questionMarkTriangle[i + 1]; while (true) { if (!s.Contains('?'.ToString())) { break; } for (int j = 0; j < s.Length - 1; j++) { if (s[j] == '?' && s[j + 1] == '?') { continue; } int index = 0; int index2 = 0; int a = 0; int b = 0; if (s[j] == '?') { index = j + 1; index2 = j; } else { index = j; index2 = j + 1; } if (j >= s2.Length) { a = int.Parse(s2[s2.Length - 1].ToString()); } else { a = int.Parse(s2[j].ToString()); } b = int.Parse(s[index].ToString()); int ans = getAns(a, b); s = s.Remove(index2, 1); s = s.Insert(index2, ans.ToString()); if (!s.Contains('?'.ToString())) { break; } } } questionMarkTriangle[i] = s; } return questionMarkTriangle; } }