AtCoder 生活　69日目

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

#69日目
今回は茶色diffの問題を2問解き、とバーチャル参加を2回しました。

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC167|D|◯|54分57秒|
|ABC166|D|◯|35分7秒|

![スクリーンショット 2020-05-29 14.04.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/89cc6d64-8a6f-90c3-c2d9-81b07994dbf1.png)
![スクリーンショット 2020-05-29 16.00.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/0fd80c80-21e5-c05f-2de9-7218e222cf84.png)


##[ABC143](https://atcoder.jp/contests/abc143)

###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>;

const int INF = 2e9;

int main(){
    int a,b;
    cin >> a >> b;
    cout << max((a - 2*b),0) << endl;
}

```

###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>;

const int INF = 2e9;

int main(){
    int n;
    cin >> n;
    vector<int> d(n);
    rep(i,n) cin >> d[i];
    ll ans = 0;
    rep(i,n){
        rep(j,i)ans += d[j]*d[i];
    }
    cout << ans << endl;
}

```

###C

```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>;

const int INF = 2e9;

int main(){
    int n;
    string s;
    cin >> n >> s;
    queue<char> a;
    a.push(s[0]);
    for(int i = 1;i < n;i++){
        if(s[i-1] == s[i]) continue;
        a.push(s[i]);
    }
    cout << a.size() << endl;
}

```


##[ABC142](https://atcoder.jp/contests/abc142)

###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>;

const int INF = 2e9;

int main(){
    int n;
    cin >> n;
    int t = (n+1)/2;
    double ans = t/n;
    cout << fixed << setprecision(10) << ans << endl;
}

```

###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>;

const int INF = 2e9;

int main(){
    int n,k;
    cin >> n >> k;
    int ans = 0;
    rep(i,n){
        int a;
        cin >> a;
        if(a >= k) ans++;
    }
    cout << ans << endl;
}

```

###C

```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>;

const int INF = 2e9;

int main(){
    int n;
    cin >> n;
    vector<pii> x(n);
    int cnt = 1;
    rep(i,n){
        int a;
        cin >> a;
        x[i].first = a;
        x[i].second = cnt;
        cnt++;
    }
    sort(x.begin(),x.end());
    rep(i,n){
        cout << x[i].second << " ";
    }
    cout << endl;
}

```


##[ABC167_D](https://atcoder.jp/contests/abc167/tasks/abc167_d)

```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>;

const int INF = 2e9;

int main(){
    ll n,k;
    cin >> n >> k;
    vector<int> a(n);
    rep(i,n){
        cin >> a[i];
        a[i]--;
    }
    vector<int> cnt(n,0);
    cnt[0]++;
    int r;
    int now = 0;
    int fir = 0;
    int sec = 0;
    while(true){
        r = now;
        now = a[now];
        cnt[now]++;
        if(cnt[now] == 1) fir++;
        if(cnt[now] == 2) sec++;
        if(cnt[now] == 3) break;
    }
    if(k <= fir){
        int s = 0;
        rep(i,k){
            s = a[s];
        }
        cout << s+1 << endl;
    }
    else{
        k -= fir;
        k %= sec;
        rep(i,k){
            r = a[r];
        }
        cout << r+1 << endl;
    }
}

```

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


##[ABC166_D](https://atcoder.jp/contests/abc166/tasks/abc166_d)

```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>;

const int INF = 2e9;

int main(){
    int x;
    cin >> x;
    bool ok = false;
    for(int i = -200;i < 200;i++){
        for(int j = -200;j < 200;j++){
            ll s = pow(i,5);
            ll t = pow(j,5);
            if (x == (s-t)){
                cout << i << " " << j << endl;
                return 0;
            }
        }
    }
}

```

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


###最後に
もっと茶色diffの問題を素早く解けるように努力していきたい。

難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|D|44分47秒|2問中2問|