AtCoder 生活　60日目

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

#60日目
今回はC問題を2問を解き、とバーチャル参加に2回参加しました。

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC065|C|✕|151分41秒|
|ABC061|C|◯|35分57秒|

![スクリーンショット 2020-05-20 13.23.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/8bcf604e-fbed-5b8e-4c9e-4e1eefb795e5.png)

![スクリーンショット 2020-05-20 16.15.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/4f9fbd4e-483e-a0b5-3a63-b9864d08af03.png)


##[ABC065_C](https://atcoder.jp/contests/abc065/tasks/arc076_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,m;
    cin >> n >> m;
    ll mod = 1e9 + 7;
    if(abs(n-m) > 1){
        cout << 0 << endl;
        return 0;
    }
    ll ans;
    if(abs(n-m) == 1) ans = 1;
    else ans = 2;
    rep(i,n){
        ans *= (i+1);
        ans %= mod;
    }
    rep(i,m){
        ans *= (i+1);
        ans %= mod;
    }
    cout << ans << endl;
    return 0;
}

```

解くのにかかった時間：151分41秒
感想：階乗を単純に回して計算してもこの計算時間で終えることができるとは思わなかった。


##[ABC061_C](https://atcoder.jp/contests/abc061/tasks/abc061_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>;

int main(){
    ll n,k;
    cin >> n >> k;
    vector<pii> x(n);
    rep(i,n){
        int a,b;
        cin >> a >> b;
        x[i].first = a;
        x[i].second = b;
    }
    sort(x.begin(),x.end());
    rep(i,n){
        k -= x[i].second;
        if(k <= 0){
            cout << x[i].first << endl;
            return 0;
        }
        else continue;
    }
}

```

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


##[ABC161](https://atcoder.jp/contests/abc161)

###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 x,y,z;
    cin >> x >> y >> z;
    cout << z << " " <<  x << " " << y;
}

```

###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,m;
    cin >> n >> m;
    double s = 4*m;
    double r = 0;
    int cnt = 0;
    vector<int> a(n);
    rep(i,n){
        cin >> a[i];
        r += a[i];
    }
    r /= s;
    rep(i,n){
        if(a[i] >= r) cnt++;
    }
    if(cnt >= m) cout << "Yes" << endl;
    else cout << "No" << 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>;

int main(){
    ll n,k;
    cin >> n >> k;
    n %= k;
    ll c = abs(n - k);
    cout << min(c,n) << endl;
}

```


##[ABC160](https://atcoder.jp/contests/abc160)

###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;
    if(s[2] == s[3] && s[4] == s[5]) cout << "Yes" << endl;
    else cout << "No" << 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>;


int main(){
    int x;
    cin >> x;
    int a = x/500;
    x %= 500;
    int b = x/5;
    cout << a*1000 + b*5 << 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>;

int main(){
    int k,n;
    cin >> k >> n;
    vector<int> a(n+1);
    rep(i,n) cin >> a[i];
    a[n] = k + a[0];
    int res = 0;
    for(int i = 1;i <= n;i++){
        res = max(res,a[i] - a[i-1]);
    }
  	int ans = k - res;
    cout << res << endl;
}


```


###最後に
安定してB問題まではせめて10分以内には解けるようにしなければいけない
ABC160のC問題は何が原因で間違えたのかわからなかった。どこが間違っていたのだろうか？誰か教えて下さい

難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|C|35分57秒|2問中1問|