ABC176に参加しました
AtCoderのコンテストに参加した際の結果と考え方、反省点などを書いていきます。
コンテストページはこちら
解いた/挑んだ問題
A問題
問題の概要
一度に最大X個のたこ焼きを作るのにT分かかります。
N個のたこ焼きを作るためにかかる時間を答えよ
制約
- 入力はすべて整数
どのように考えたか
nがxで割り切れれば(n/x) *tで割り切れない場合は((n/x) + 1) *t
結果
一発AC
・提出ししたコード
#include"bits/stdc++.h" #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define REP(i, n) for (int i = 1; i <= (int)(n); i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() using namespace std; using ll = long long; using pi = pair<int, int>; const ll INF = 1LL << 60; int main() { int n, x, t; cin >> n >> x >> t; if (n % x == 0) { cout << (n / x) * t << endl; } else cout << ((n / x)+1) * t << endl; return 0; }
簡単な問題だった
ACまでの時間
ACしたのはコンテスト開始から2分後です。
B問題
問題の概要
Nが9の倍数であるか判定せよ
制約
- Nは整数
どのように考えたか
Nをstringで受け取り一桁ずつ数値に直してsumに加算
sumが9で割り切れるか判定
結果
一発AC
提出したコード
#include"bits/stdc++.h" #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define REP(i, n) for (int i = 1; i <= (int)(n); i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() using namespace std; using ll = long long; using pi = pair<int, int>; const ll INF = 1LL << 60; int main() { string s; cin >> s; ll sum = 0; for (auto ss : s) { sum += ss - '0'; } if (sum % 9 == 0) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
数値変換処理を結構行うので間に合うか怖かった
ACまでの時間
ACしたのはコンテスト開始から6分後です。
C問題
問題の概要
N人が一列に並んでいる
二番目以降の人は自分より前に自分より身長の高い人がいないように踏み台を設置したい
踏み台の高さの合計の最小値を求めよ
制約
- 入力はすべて整数
どのように考えたか
前から見ていって前より身長が低い人がいたら前の人と同じになるように踏み台を追加した
結果
二回目でAC
・提出したコード
#include"bits/stdc++.h" #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define REP(i, n) for (int i = 1; i <= (int)(n); i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() using namespace std; using ll = long long; using pi = pair<int, int>; const ll INF = 1LL << 60; int main() { int n; cin >> n; vector<ll>stu(n); rep(i, n)cin >> stu[i]; ll tmp = 0,sum=0; for (int i = 1; i < n; i++) { if (stu[i] < stu[i - 1]) { tmp = stu[i-1] - stu[i]; stu[i] += tmp; sum += tmp; } } cout << sum << endl; return 0; }
変数をintで宣言してWAだったのでlong longが必要な時を見極めていきたい
ACまでの時間
ACしたのはコンテスト開始から12分後。
結果
コンテスト結果
ABCの3完でした。
D問題に80分挑みましたが解けなくて悔しいです。
パフォーマンス、レーティング変動
今回のパフォーマンスは613、前回より約40下がってしまいました。
レーティングはそれに伴い+2の589となりました。
反省点
今回はABCがとても簡単だったので、ある程度の早解き力が必要なんだと実感しました。
聞いた話によるとEが簡単だったらしく、Dを捨ててEを素早く見ていたら結果が変わったのかと思うと反省点が多いです。