ABC151
結果
問題 | 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完がキープできている
おわりに
- ニホンゴムズカシイネ