AtCoder 生活　33日目

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

#33日目
今回は、[AtcoderProblemsのBoot camp for Beginners](https://kenkoooo.com/atcoder/#/training)のEasy問題を5問解きました

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|CODE FESTIVAL 2016 qual B|B|◯|31分21秒|
|三井住友信託銀行プログラミングコンテスト2019|B|◯|14分28秒|
|パナソニックプログラミングコンテスト2020|B|✕|60分43秒|
|ABC086|B|◯|37分4秒|
|ABC074|B|✕|81分5秒|


##[CODE FESTIVAL 2016 qual B _B](https://atcoder.jp/contests/code-festival-2016-qualb/tasks/codefestival_2016_qualB_b)

```c++

#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;

int main(){
    int n,a,b;
    cin >> n >> a >> b;
    string s;
    cin >> s;
    int j = 0,r = 0;
    rep(i,n){
        if(s[i] == 'a'){
            if(a+b > r){
                cout << "Yes" << endl;
                r++;
                continue;
            }
        }
        if(s[i] == 'b'){
            if(a+b > r && b > j){
                cout << "Yes" << endl;
                r++; j++;
                continue;
            }
        }
        cout << "No" << endl;
    }
    return 0;
}

```

解くのにかかった時間：31分21秒
感想：ifを2つ作るあたりでかなり組み方に悩んだ


##[三井住友信託銀行プログラミングコンテスト2019_B](https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_b)

```c++

#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;

int main(){
    int n,x = 1;
    cin >> n;
    while(x <= 50000  || x <= n){
      	int s = x*1.08;
        if(n == s){
            cout << x << endl;
            return 0;
        }
        x++;
    }
    cout << ":(" << endl;
}


```

解くのにかかった時間：14分28秒


##[パナソニックプログラミングコンテスト2020_B](https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_b)

```c++

#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;

int main(){
    ll a, b;
    cin >> a >> b;
    ll s = (a*b+1)/2;
    if(a == 1 || b == 1){
        cout << 1 << endl;
        return 0;
    }
    cout << s << endl;
}

```

解くのにかかった時間：60分43秒
感想:1列しかない時の場合が思い付かなかった


##[ABC086_B](https://atcoder.jp/contests/abc086/tasks/abc086_b)

```c++

#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;

int main(){
    int a,b;
    cin >> a >> b;
    int k = 1;
  	int c = b;
    rep(i,2){
        if(c/10 != 0){
            k++;
            c /= 10;
        }
        else break;
    }
    int r = pow(10,k);
    int s = a*r+b;
    rep(i,350){
        int x = pow(i,2);
        if(x == s){
            cout << "Yes" << endl;
            return 0;
        }
        if(x > s) break;
    }
    cout << "No" << endl;
}

```

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


##[ABC074_B](https://atcoder.jp/contests/abc074/tasks/abc074_b)

```c++

#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;

int main(){
    int n,k;
    cin >> n >> k;
    vector<int> x(n);
    int sum;
    rep(i,n) cin >> x[i];
    rep(i,n){
        sum += min(x[i],abs(x[i]-k));
    }
    cout << sum*2 << endl;
}

```

解くのにかかった時間：81分5秒
感想：解説を読んだらかなり簡単な問題であった事に気づいた。


###最後に
なかなか解に素早くたどり着けなかった。もっと早くたどり着けるよう努力したい。


|難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|B|27分24秒|5問中3問|