imomoの勉強記録

主に勉強の記録などを残していきます

ABC171に参加しました

AtCoderのコンテストに参加した際の結果と考え方、反省点などを書いていきます。
コンテストページはこちら

解いた/挑んだ問題

A問題

問題の概要

英小文字か英語大文字が一文字与えられる
小文字なら'a'を、大文字なら'A'を出力せよ

制約
  • 与えられる文字は('a' - 'z')もしくは、('A' - 'Z')のいずれか
どのように考えたか

文字をASCIIコードとしてみると、大文字のA-Zの後に小文字のa-zが出てくるので、
大文字のZより大きいか小さいかで判定

結果

一発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()
using namespace std;
using ll = long long;
using pi = pair<int, int>;
const ll INF = 1LL << 60;


int main() {
    char a;
    cin >> a;
    if (a <= 'Z')cout << 'A' << endl;
    else cout << 'a' << endl;
    return 0;
}

文字コードで判定するとき少し不安だったが通ってよかった

ACまでの時間

ACしたのはコンテスト開始から2分後です。

f:id:iiiimmmmo:20200621233009p:plain
ABC171_A

B問題

問題の概要

N種類の果物が売っている店でK種類の果物を買うときの最安値を出力せよ

制約
  • 1 \leq K  \leq N \leq 1000
  • 1 \leq P_i \leq 1000
  • 入力中の値はすべて整数である
どのように考えたか

果物N種類をvectorに入れて昇順ソートしてK個の合計を出力

結果

一発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()
using namespace std;
using ll = long long;
using pi = pair<int, int>;
const ll INF = 1LL << 60;


int main() {
    int n, k;
    cin >> n >> k;
    vector<int>arr(n);
    rep(i, n)cin >> arr[i];
    sort(all(arr));
    int sum = 0;
    rep(i, k) {
        sum += arr[i];
    }
    cout << sum << endl;
    return 0;
}

同じ価格でもいいのかと不安になりながら提出した

ACまでの時間

ACしたのはコンテスト開始から4分後です。

f:id:iiiimmmmo:20200621233507p:plain
ABC171_B

C問題

問題の概要

整数Nが与えられる
Nが1の時’a’、26の時'z'、27の時'aa'、703の時'aaa'のように英小文字で表現するとき、Nを英小文字で表現せよ

制約
  • Nは整数
  • 1 \leq N \leq 1000000000000001
どのように考えたか

26進数とみて、上から当てはまった場合割っていき最後に割れた数で変換する

結果

コンテスト中に通すことはできませんでした
文字列の桁が増える時に何か不具合が起きている ぐらいまでしか原因究明ができていません

f:id:iiiimmmmo:20200621234238p:plain
ABC171_C

結果

コンテスト結果

ABの2完でした。
ABまでは順調でしたがC問題で詰まってしまいました

f:id:iiiimmmmo:20200621234348p:plain
ABC171

パフォーマンス、レーティング変動

今回のパフォーマンスは325、前回より500も下がってしまいました。
レーティングはそれに伴い-21の513となりました。

f:id:iiiimmmmo:20200621234632p:plain
コンテスト成績表

f:id:iiiimmmmo:20200621234653p:plain
ABC171を終えた時点でのレーティング

反省点

今回はC問題でかなり躓いてしまい、レーティングが下がってしまいました。
C問題以外にも目を向けて、一つの問題に固執しないようにしたいです。