AtCoder 生活　13日目

[前回]
(https://qiita.com/flandrescarlet237/items/d3b028f559e5c53cb11d)

#13日目
今日はABC154~ABC158までのA問題を5問、B問題を3問、C問題を1問解きました。

## ABC154_A

問題:[Remaining Balls]
(https://atcoder.jp/contests/abc154/tasks/abc154_a)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    string S,T;
    cin >> S >> T;
    int A,B;
    cin >> A >> B;
    string U;
    cin >> U;
    if(S == U){
        A -= 1;
    }
    if(T == U){
        B -= 1;
    }
    cout << A << " " << B << endl;
}

```

解くのにかかった時間：5分43秒

## ABC155_A

問題:[Poor]
(https://atcoder.jp/contests/abc155/tasks/abc155_a)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int A,B,C;
    cin >> A >> B >> C;
    if(A == B && A != C){
        cout << "Yes" << endl;
        return 0;
    }
    if(A == C && A != B){
        cout << "Yes" << endl;
        return 0;
    }
    if(C == B && A != C){
        cout << "Yes" << endl;
        return 0;
    }
    cout << "No" << endl;
}

```

解くのにかかった時間：6分36秒

## ABC156_A

問題:[Beginner]
(https://atcoder.jp/contests/abc156/tasks/abc156_a)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int N,R;
    cin >> N >> R;
    if(N >= 10){
        cout << R << endl;
    }
    else {
        cout << R + 100 * (10 - N) << endl;
    }
}

```

解くのにかかった時間：4分49秒


## ABC156_B

問題:[Digits]
(https://atcoder.jp/contests/abc156/tasks/abc156_b)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int N,K;
    cin >> N >> K;
    int ans = 1;
    bool res = true;
    while(res){
        if(N/K > 0){
            N = N/K;
            ans++;
        }
        else{
            res = false;
        }
    }
    cout << ans << endl;
}

```

解くのにかかった時間：17分28秒
感想：かなりわかりやすかった。

## ABC157_A

問題:[Duplex Printing]
(https://atcoder.jp/contests/abc157/tasks/abc157_a)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int N;
    cin >> N;
    if(N % 2 == 0){
        cout << N/2 << endl;
    }
    else {
        cout << N/2 + 1 << endl;
    }
}

```

解くのにかかった時間：7分37秒


## ABC157_B

問題:[Bingo]
(https://atcoder.jp/contests/abc157/tasks/abc157_b)


```c++

#include <bits/stdc++.h>
using namespace std;
int N, A[3][3], b[10];
bool appear[3][3];
int main() {
    for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 3; j++) cin >> A[i][j];
    }
    cin >> N;
    for(int i = 0; i < N; i++) cin >> b[i];
    for(int i = 0; i < N; i++) {
        for(int j = 0; j < N; j++) {
            appear[i][j] = false;
            for(int k = 0; k < N; k++) {
                if(A[i][j] == b[k]) appear[i][j] = true;
            }
        }   
    }
    string ANS = "No";
    for(int i = 0; i < 3; i++) {
        if(appear[i][0] and appear[i][1] and appear[i][2]) ANS = "Yes";
    }
    for(int i = 0; i < 3; i++) {
        if(appear[0][i] and appear[1][i] and appear[2][i]) ANS = "Yes";
    }
    if(appear[0][0] && appear[1][1] && appear[2][2]) ANS = "Yes";
    if(appear[0][2] && appear[1][1] && appear[2][0]) ANS = "Yes";
    cout << ANS << endl;
    return 0;
}

```

解くのにかかった時間：77分24秒
感想：ifを使うためにtrueを使う発想にいたれなかった。

## ABC158_A

問題:[Station and Bus]
(https://atcoder.jp/contests/abc158/tasks/abc158_a)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    string S;
    cin >> S;
    if(S[0] != S[1] || S[0] != S[2] || S[1] != S[2]){
        cout << "Yes" << endl;
        return 0;
    }
    cout << "No" << endl;
}

```

解くのにかかった時間：2分54秒


## ABC158_B

問題:[Count Balls]
(https://atcoder.jp/contests/abc158/tasks/abc158_b)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int64_t N,A,B;
    cin >> N >> A >> B;
    int64_t total = 0;
    for(int i = 0;i < N/(A+B);i++){
        total += A;
    }
    if(N%(A+B) >=A){
        total += A;
    }
    else {
        total += N%(A+B);
    }
    cout << total << endl;
}

```

解くのにかかった時間：29分36秒
感想：変なところに時間がかかってしまった。


## ABC158_C

問題:[Tax Increase]
(https://atcoder.jp/contests/abc158/tasks/abc158_c)


```c++

#include <bits/stdc++.h>
using namespace std;

int main(){
    int A,B;
    cin >> A >> B;
    for(int i = 1;i < 1300;i++){
      	int AA = i * 0.08;
      	int BB = i * 0.1;
    	if(AA == A && BB == B){
        	cout << i << endl;
      		return 0;
        }
    }
    cout << "-1" << endl;
}

```

解くのにかかった時間：83分39秒
感想：AAやBBの所にそのまま計算式を入れたらうまく動かないのは、なんでだろうか？


###最後に
A問題は平均5分26秒で、B問題は平均41分29秒で解き終わりました。
B問題では解けない問題がないようにしていきたいです。