AtCoder 生活　34日目

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

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

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC088|B|◯|13分32秒|
|AGC014|A|◯|78分57秒|
|ABC094|B|◯|157分41秒|
|AGC027|A|◯|71分29秒|
|ABC092|B|◯|81分27秒|



##[ABC088_B](https://atcoder.jp/contests/abc088/tasks/abc088_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> x(n);
    rep(i,n) cin >> x[i];
    sort(x.rbegin(),x.rend());
    int a = 0,b = 0;
    rep(i,n){
        if(i%2 == 0) a += x[i];
        else b += x[i];
    }
    cout << abs(a-b) << endl;
}

```

解くのにかかった時間：13分32秒


##[AGC014_A](https://atcoder.jp/contests/agc014/tasks/agc014_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(){
    ll a,b,c;
    cin >> a >> b >> c;
    if(a%2 != 0 || b%2 != 0 || c%2 != 0){
        cout << 0 << endl;
        return 0;
    }
    if(a == b && b== c){
        cout << -1 << endl;
      	return 0;
    }
    int cnt = 0;
    while(true){
        ll x = (a+b)/2;
        ll y = (b+c)/2;
        ll z = (a+c)/2;
        a = x,b = y,c = z;
        cnt++;
        if(a%2 != 0 || b%2 != 0 || c%2 != 0){
            break;
        }
    }
    cout << cnt << endl;
}

```

解くのにかかった時間：78分57秒
感想：しばらく先に奇数があるかどうかを調べればいいことに気づけなかった


##[ABC094_B](https://atcoder.jp/contests/abc094/tasks/abc094_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,m,x;
    cin >> n >> m >> x;
    vector<int> y(m);
    rep(i,n)cin >> y[i];
    int a = 0,b = 0,s = 0,t = n-1;
    for(int i = x;i < n;i++){
        for(int j = s;j <= m;j++){
            if(y[j] < i){
              	s = j;
              	continue;
            }
            else if(y[j] == i){
                a++;
                s = j;
                break;
            }
            break;
        }
    }
    for(int i = x;i >= 0;i--){
        for(int j = t;j >= 0;j--){
            if(y[j] > i) {
              	t = i;
              	continue;
            }
            else if(y[j] == i){
                b++;
                t = j;
              	break;
            }
        }
    }
    cout << min(a,b) << endl;
}

```

解くのにかかった時間：157分41秒
感想：かなり時間がかかってしまった。


##[AGC027_A](https://atcoder.jp/contests/agc027/tasks/agc027_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 n,x,sum = 0;
    cin >> n >> x;
    int cnt = 0;
    vector<int> a(n);
    rep(i,n) cin >> a[i];
    sort(a.begin(),a.end());
  	int s = x;
    rep(i,n) {
        s -= a[i];
      	sum += a[i];
        if(s < 0){
            cout << i << endl;
            return 0;
        }
    }
  	if(sum == x){
      cout << n << endl;
      return 0;
    }
  	cout << n-1 << endl;
}


```

解くのにかかった時間：71分29秒


##[ABC092_B](https://atcoder.jp/contests/abc092/tasks/abc092_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,d,x;
    cin >> n;
  	cin >> d >> x;
    vector<int> a(n);
    rep(i,n) cin >> a[i];
    int sum = x;
    rep(j,n){
        rep(i,d+2){
            if(d < a[j]*i+1){
                sum += i;
                break;
            }
        }
    }
    cout << sum << endl;
}

```

解くのにかかった時間：81分27秒


###最後に
全体的にすごく時間がかかってしまった。これらを早く解けるようになりたい


|難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|A|74分58秒|2問中2問|
|B|83分46秒|3問中3問|