ABC178に参加しました
AtCoderのコンテストに参加した際の結果と考え方、反省点などを書いていきます。
コンテストページはこちら
解いた/挑んだ問題
A問題
問題の概要
0か1の整数が与えられるので0なら1を、1なら0を出力せよ
制約
- は整数
どのように考えたか
偶奇判定して偶数なら1、奇数なら0を出力
結果
二回目で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; if (n % 2 == 0) { cout << 1 << endl; } else { cout << 0 << endl; } return 0; }
0と1の出力を反対に書いてそれに気づいたのが7分後でした 悔やまれます
ACまでの時間
ACしたのはコンテスト開始から7分後です。
B問題
問題の概要
整数が与えられる
を満たす整数の最大の積を求めよ
制約
- 入力はすべて整数
どのように考えたか
結果
二回目で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() { ll a, b, c, d,tmp=0; cin >> a >> b >> c >> d; if (a < 0 && 0 <= b || c < 0 && 0 <= d)tmp = 0; else tmp = a * c; cout << max(max(max(max(a*c,a*d),b*c),b*d),tmp) << endl; return 0; }
複雑な条件分岐を最初書いていたので気づきが足りなかった
ACまでの時間
ACしたのはコンテスト開始から26分後です。
結果
コンテスト結果
ABの2完でした。
今回はABともに解くのがとても遅く、C以降は解けていないので非常につらい回でした
パフォーマンス、レーティング変動
今回のパフォーマンスは140、前回より400近くも下がってしまいました。
レーティングはそれに伴い-50の538となりました。
反省点
今回はミスが多かったり、知らない知識を要求されたりと非常に辛い回でした。
数学系の問題が出るたびに固唾をのんでいる気がするので、この度数学を学びなおそうかと本気で考え始めました。
これからも支えていただけると嬉しいです。