AtCoder 生活　44日目

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

#44日目
今回は、[AtcoderProblemsのBoot camp for Beginners](https://kenkoooo.com/atcoder/#/training)のMedium問題を3問とABCのAB問題を2つ解きました。

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC095|A|◯|7分54秒|
|ABC095|B|◯|12分10秒|
|ABC096|A|◯|3分23秒|
|ABC096|B|◯|7分43秒|
|ABC065|B|◯|24分7秒|
|AGC029|A|✕|120分12秒|
|AGC040|A|✕|100分26秒|


##[ABC095](https://atcoder.jp/contests/abc095)

###A

```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(){
    string s;
    cin >> s;
    int m = 700;
    rep(i,3) if(s[i] == 'o') m += 100;
    cout << m << endl;
}

```
かかった時間:7分54秒

###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>;
using pil = pair<pii,int>;


int main(){
    int n,x;
    cin >> n >> x;
    int s = 0;
    vector<int> m(n);
    rep(i,n){
        cin >> m[i];
        s += m[i];
    }
    sort(m.begin(),m.end());
    x -= s;
    int r = x/m[0];
    cout << n + r << endl;
}

```

かかった時間:12分10秒


##[ABC096](https://atcoder.jp/contests/abc096)

###A

```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;
    if(a > b)cout << a - 1 << endl;
    else cout << a << endl;
}

```
かかった時間:3分23秒

###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>;
using pil = pair<pii,int>;


int main(){
    int a,b,c;
    cin >> a >> b >> c;
    int k;
    cin >> k;
    int m = max({a,b,c});
    int d =  m;
    rep(i,k) m *= 2;
    cout << a+b+c+m-d << endl; 
}

```
かかった時間:7分43秒


##[ABC065_B](https://atcoder.jp/contests/abc065/tasks/abc065_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;
    cin >> n;
    vector<int> a(n);
    rep(i,n) cin >> a[i];
    int cnt = 1;
    int i = 0;
    while(cnt < n){
        int s = a[i]-1;
      	i = s;
        if(i+1 == 2){
            cout << cnt << endl;
            return 0;
        }
        cnt++;
    }
    cout << -1 << endl;
}

```
かかった時間:24分7秒


##[AGC029_A](https://atcoder.jp/contests/agc029/tasks/agc029_a)

```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(){
    string s;
    cin >> s;
    ll cnt = 0;
    int Bcount = 0;
    rep(i,s.size()){
        if(s[i] == 'B')Bcount++;
        else cnt += Bcount;
    }
    cout << cnt << endl;
}


```

解くのにかかった時間：120分12秒
感想：Wが出たときにそれまでに出てきたBの数だけ裏返っていくということに気づいたときは面白いと感じた。


##[AGC040_A](https://atcoder.jp/contests/agc040/tasks/agc040_a)

```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(){
    string s;
    cin >> s;
    ll ans = 0;
    vector<ll> a(s.size()+1),b(s.size()+1);
    rep(i,s.size()){
        if(s[i] == '<')a[i+1] = a[i]+1;
    }
    for(int i = s.size()-1;i >= 0;i--){
        if(s[i] == '>')b[i] = b[i+1]+1;
    }
    for(int i = 0;i<= s.size();i++) ans += max(a[i],b[i]);
    cout << ans << endl;
}

```

解くのにかかった時間：100分26秒
感想：vectorで要素を自分で作ることを思いつかなかった


###最後に
茶色に近い問題を素早く解けるように頑張っていきたい

|種類|難易度|かかった平均時間|解けた問題数|
|:-:|:-:|---|---|
|ABC|A|5分38秒|2問中2問|
|ABC|B|14分26秒|3問中3問|