kichi2004's BLOG

競技プログラミングの参加記とか日常とか。(※Google Analyticsを使用しています)

競プロ

「Tenka1 Programmer Beginner Contest 2019」に参加しました

投稿日:2019年4月20日 更新日:

コンテストページはこちら

結果

3完 [A(100), B(200), C(300)] 11:53 ペナルティ: 0
・順位: 8位
・パフォーマンス: 1600 (Inner: 2556)
・Rating変化: 1198 -> 1246 (+48) [Rating最高値]

各問題の解法

A問題 (100点)

提出詳細

int A, B, C;
cin >> A >> B >> C;
cout << (C > A && C < B || C < A && C > B ? "Yes" : "No") << endl;

B問題 (200点)

やるだけ
提出詳細

int N, K;
string S;
cin >> N >> S >> K;
char c = S[K - 1];
for (int i = 0; i < N; i++) {
  cout << (S[i] == c ? c : '*');
}
cout << endl;

C問題 (300点)

提出詳細
左からi番目までの#の数A[i]と、右からi番目までの.の数B[i]を用意して、A[i]+B[i]の最小値をとる。
すべて.にする場合とすべて#にする場合は別で値を持っておいて、それ以外のN-1回ループを回す。

int N;
string s;
cin >> N >> s;
vint sumL(N), sumR(L);
sumL[0] = s[0] == '#';
sumR[N - 1] = s[N - 1] == '.';

for (int i = 1; i < N; i++)
  sumL[i] = sumL[i - 1] + (s[i] == '#');

for (int i = N - 2; i >= 0; i--)
  sumR[i] = sumR[i + 1] + (s[i] == '.');

int ans = min(sumL[N - 1], sumR[0]);
for (int i = 0; i < N - 1; i++)
  ans = min(ans, sumL[i] + sumR[i + 1]);

cout << min << endl;

感想

2回連続、3回目の青パフォ!!
やっと水色到達!!!!!!!!
めちゃめちゃ嬉しい!!
目標にしていた4月までに水色になる、を達成しました!!

-競プロ

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

no image

「AtCoder Grand Contest 033」に参加しました

コンテストページはこちら 結果 2完 [A(300), B(600)] 139:48 ペナルティ: 7 (139:48 -> 174:48) ・順位: 817位 (Rated) ・パフォーマンス: 1 …

no image

「diverta 2019 Programming Contest」に参加しました

コンテストページはこちら 結果 4完 [A(100), B(200), C(400), D(500)] 47:04 ペナルティ: 1 (47:04 -> 52:04) ・順位: 446位 (Unrat …

no image

「AtCoder Beginner Contest 126」に参加しました

コンテストページはこちら 結果 5完 [A(100), B(200), C(300), D(400), E(500)] 57:43 ペナルティ: 0 ・順位: 662位 (Unrated) 各問題の解 …

no image

「AtCoder Beginner Contest 141」に参加しました

コンテストページはこちら 結果 5完 [A(100), B(200), C(300), D(400), E(500)] 46:53 ペナルティ: 1 (-> 51:53) ・順位: 329位 (Rat …

no image

「AtCoder Beginner Contest 144」に参加しました(&A-E問題解説)

コンテストページはこちら 結果 4完 [A(100), B(200), C(300), E(500)] 46:53 ペナルティ: 0 ・順位: 805位 (Rated内?位) ・パフォーマンス: 14 …