AtCoder 生活　57日目

[前回]()

#57日目
今回はA問題を2問、B問題を2問、C問題を2問を解き、とバーチャル参加を1回して、
ABC168に参加しました。

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC002|A|◯|1分35秒|
|ABC002|B|◯|13分14秒|
|ABC001|A|◯|1分5秒|
|ABC001|B|◯|60分22秒|
|ABC071|C|✕|69分19秒|
|ABC070|C|✕|94分44秒|

![スクリーンショット 2020-05-17 15.01.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/e1320d48-14f2-a4d8-bfd9-91eec6c615b6.png)

![スクリーンショット 2020-05-17 22.41.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/31da4424-e767-e282-c8e0-dc53532cd1e5.png)


##[ABC002](https://atcoder.jp/contests/abc002)

###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;
    cin >> x >> y;
    cout << max(x,y) << endl;
}

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


###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(){
    string w;
    cin >> w;
    int t = w.size();
    rep(i,t){
        if(w[i] == 'a' || w[i] == 'i' || w[i] == 'u' || w[i] == 'e' || w[i] == 'o' ){
            continue;
        }
        else cout << w[i];
    }
    cout << endl;
}

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


##[ABC001](https://atcoder.jp/contests/abc001)

###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;
    cout << a-b << endl;
}

```
解くのにかかった時間：1分5秒


###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 s;
    cin >> s;
    if(s < 1000)cout << 0 << s/100 << endl;
    if(1000 <= s && s <= 5000) cout << s/100 << endl;
    if(6000 <= s && s <= 30000) cout << s/1000 + 50 << endl;
    if(35000 <= s && s <= 70000) cout << (s/1000 - 30)/5 + 80 << endl;
    if(70000 < s)cout << 89 << endl;
}

```
解くのにかかった時間：60分22秒
感想：70kmがどの範囲に入るかで少し悩んだ


##[ABC166](https://atcoder.jp/contests/abc166)

###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[1] == 'B')cout << "ARC" << endl;
    else cout << "ABC" << 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 n,k;
    cin >> n >> k;
    vector<int> d(k);
    set<int> s;
    rep(i,k){
        cin >> d[i];
        vector<int> a(d[i]);
        rep(j,d[i]){
            cin >> a[j];
            s.insert(a[j]);
        }
    }
    int t = s.size();
    cout << n - t << 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 n,m;
    cin >> n >> m;
    vector<int> h(n+1);
    vector<bool> s(n+1);
    for(int i = 1;i <= n;i++){
        cin >> h[i];
        s[i] = true;
    }
    for(int i = 1;i <= m;i++){
        int a,b;
        cin >> a >> b;
        if(h[a] <= h[b]) s[a] = false;
        if(h[a] >= h[b]) s[b] = false;
    }
    int ans = 0;
    for(int i = 1;i <= n;i++){
        if(s[i])ans++;
    }
    cout << ans << endl;
}

```

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

int main(){
    ll x;
  	cin >> x;
    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((s - t) == x){
                cout << i << " " << j << endl;
                return 0;
            }
        }
    }
}

```

感想:C問題は少し間に合わなかったが、久しぶりに解いて自力でDまで解けた。


##[ABC071_C](https://atcoder.jp/contests/abc071/tasks/arc081_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;
    cin >> n;
    vector<ll> a(n);
    rep(i,n)cin >> a[i];
    ll x = -1,y = 0;
    sort(a.rbegin(),a.rend());
    rep(i,n-1){
        if(a[i] != a[i+1]) continue;
        if(x == -1){
            x = a[i];
            i++;
        }
        else{
            y = a[i];
            break;
        }
    }
    ll ans = x*y;
    cout << ans << endl;
}

```

解くのにかかった時間：69分19秒
感想：どうxとyを定めればいいのかわからなかった。


##[ABC070_C](https://atcoder.jp/contests/abc070/tasks/abc070_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>;

ll gcd(ll a,ll b){
    if(b == 0) return a;
    return gcd(b,a%b);
}

ll lcm(ll a,ll b){
    ll g = gcd(a,b);
    return a / g * b;
}

int main(){
    int n;
    cin >> n;
    ll ans = 1;
    rep(i,n){
        ll t;
        cin >> t;
        ans = lcm(ans,t);
    }
    cout << ans << endl;
}

```

解くのにかかった時間：94分44秒
感想：なかなか答えにたどり着けなかった。


##[ABC168](https://atcoder.jp/contests/abc168)

###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;
    cin >> n;
    n %= 10;
    if(n == 2 || n == 4 || n == 5 || n == 7 || n == 9) cout << "hon" << endl;
    else if(n == 0 || n == 1 || n == 6 || n == 8) cout << "pon" << endl;
    else cout << "bon" << 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 k;
    cin >> k;
    string s;
    cin >> s;
    int t = s.size();
    if(t <= k)cout << s << endl;
    else{
        s = s.substr(0,k);
        cout << s << "..." << 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>;

double pi = 3.141592653589793;


int main(){
    int a,b,h,m;
    cin >> a >> b >> h >> m;
    double x,y;
    x = 30*h + 0.5*m;
    y = m*6;
    double r = abs(x-y);
    double k = min(r,360-r);
    k /= 180;
    double c = cos(pi*k);
    double xx = a*a + b*b - 2*a*b*c;
    double ans = pow(xx,0.5);
    cout << fixed << setprecision(10) << ans << endl; 
}

```


###最後に
ABC168のC問題で始めてcosやsinを使おうとしたのでかなり手間取ってしまった。ラジアンとπラジアンをちゃんと区別するべきだった。

難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|A|1分20秒|2問中2問|
|B|36分33秒|2問中2問|