seri::diary::competitive_programming

AtCoderで茶から赤を目指す競プロ精進日記

ABC151

atcoder.jp

結果

問題 ACまでに要した時間 AC WA TLE
A 01:17 1 0 0
B 06:56 1 0
C 40:19 1 1 0
D : 0 0 0
Rating 順位
618 (+7) 3027

久々にWAをやらかしてしまった.最初の提出でAC取れれば2300位ぐらいには入れたので大変もったいないことをした.国語力の問題でコーナーケース踏み抜くとか大変情けないので今後は気をつけたいものである.

解答

A

#include <bits/stdc++.h>

#define REP(i, x) REPI(i, 0, x)
#define REPI(i, a, b) for (int i = int(a); i < int(b); ++i)
#define ALL(x) (x).begin(), (x).end()

typedef long long ll;
using namespace std;

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  char C;
  cin >> C;
  cout << char(C + 1) << endl;

  return 0;
}

B

途中で平均を取ると小数点を扱わなくてはならない.しかし点数の総和だけで考えれば整数の範疇で解ける.

#include <bits/stdc++.h>

#define REP(i, x) REPI(i, 0, x)
#define REPI(i, a, b) for (int i = int(a); i < int(b); ++i)
#define ALL(x) (x).begin(), (x).end()

typedef long long ll;
using namespace std;

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  int N, K, M;
  int sum = 0;
  int a;
  cin >> N >> K >> M;
  REP(i, N - 1) {
    cin >> a;
    sum += a;
  }
  int target = M * N;
  if (target - sum <= K) {
    cout << max(target - sum, 0) << endl;
  } else {
    cout << -1 << endl;
  }

  return 0;
}

C

今回最大のやらかし.

高橋君のペナルティ数は、高橋君が AC を 1回以上出した各問題において、初めて AC を出すまでに出した WA の数の総和です。

この一文から 一度もACしていない問題をWAしてもペナルティに含まれないというルールを導出しなければならないのだが,これができずに一度WA踏んでから20分以上悩んでいたらしい.

#include <bits/stdc++.h>

#define REP(i, x) REPI(i, 0, x)
#define REPI(i, a, b) for (int i = int(a); i < int(b); ++i)
#define ALL(x) (x).begin(), (x).end()

typedef long long ll;
using namespace std;

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  int N, M;
  int wa = 0;
  int ac = 0;
  map<int, bool> aced;

  cin >> N >> M;
  vector<int> waed(N + 1, 0);
  REPI(i, 1, N + 1) { aced.insert(make_pair(i, false)); }

  int p;
  string s;
  REP(i, M) {
    cin >> p >> s;
    if (!aced.at(p)) {
      if (s == "WA") {
        ++waed.at(p);
      }

      if (s == "AC") {
        ++ac;
        wa += waed.at(p);
        aced.at(p) = true;
      }
    }
  }

  cout << ac << " " << wa << endl;

  return 0;
}

D

TODO

ダメだった点

  • 問題文の読み違いによる大幅順位下落

良かった点

  • 直近のABCではABC3完がキープできている

おわりに

  • ニホンゴムズカシイネ