AtCoder 生活　54日目

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

#54日目
今回は、A問題を4問、B問題を4問、C問題を2問解きました。

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC015|A|◯|3分11秒|
|ABC015|B|◯|11分5秒|
|ABC014|A|◯|7分27秒|
|ABC014|B|◯|63分37秒|
|ABC013|A|◯|2分45秒|
|ABC013|B|◯|5分10秒|
|ABC012|A|◯|3分28秒|
|ABC012|B|◯|8分20秒|
|ABC089|C|◯|48分57秒|
|ABC082|C|✕|224分48秒|


##[ABC015](https://atcoder.jp/contests/abc015)

###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 a,b;
    cin >> a >> b;
    if(a.size() > b.size()) cout << a << endl;
    if(a.size() < b.size()) cout << b << endl;
}

```
解くのにかかった時間：3分11秒


###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;
    cin >> n;
    int r = n;
    int sum = 0;
    vector<int> a(n);
    rep(i,n){
        cin >> a[i];
        if(a[i] == 0) r--;
        sum += a[i];
    }
    sum += (r-1);
    cout << sum/r << endl;
}

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


##[ABC014](https://atcoder.jp/contests/abc014)

###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;
    int r = a%b;
    if(r == 0)cout << r << endl;
    else cout << b-r << endl;
}

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


###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 sum = 0;
    int r = pow(2,n-1);
    stack<int> s;
    rep(i,n){
        s.push(x/r);
        x -= (x/r)*r;
        r /= 2;
    }
    rep(i,n){
        int a;
        cin >> a;
        if(s.top()) sum += a;
        s.pop();
    }
    cout << sum << endl;
}

```
解くのにかかった時間：63分37秒


##[ABC013](https://atcoder.jp/contests/abc013)

###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(){
    char a;
    cin >> a;
    if(a == 'A')cout << '1' << endl;
    if(a == 'B')cout << '2' << endl;
    if(a == 'C')cout << '3' << endl;
    if(a == 'D')cout << '4' << endl;
    if(a == 'E')cout << '5' << endl;
}

```
解くのにかかった時間：2分45秒


###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;
    cin >> a >> b;
    int r = abs(a-b);
    cout << min(r,10-r) << endl;
}

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


##[ABC012](https://atcoder.jp/contests/abc012)

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

```
解くのにかかった時間：3分28秒


###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;
    cin >> n;
    int s = n%60;
    n /= 60;
    int m = n%60;
    int h = n/60;
    if(h < 10)cout << 0 << h << ":";
    else cout << h << ":";
    if(m < 10)cout << 0 << m << ":";
    else cout << m << ":";
    if(s < 10)cout << 0 << s;
    else cout << s;
    cout << endl;
}

```
解くのにかかった時間：8分20秒

##[ABC089_C](https://atcoder.jp/contests/abc089)

```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;
    cin >> n;
    vector<ll> cnt(26);
    rep(i,n){
        string s;
        cin >> s;
        cnt[s[0]]++;
    }
    ll sum = 0;
    sum += cnt['M']*cnt['A']*cnt['R'];
    sum += cnt['M']*cnt['A']*cnt['C'];
    sum += cnt['M']*cnt['A']*cnt['H'];
    sum += cnt['M']*cnt['R']*cnt['C'];
    sum += cnt['M']*cnt['R']*cnt['H'];
    sum += cnt['M']*cnt['C']*cnt['H'];
    sum += cnt['A']*cnt['R']*cnt['C'];
    sum += cnt['A']*cnt['R']*cnt['H'];
    sum += cnt['A']*cnt['C']*cnt['H'];
    sum += cnt['R']*cnt['C']*cnt['H'];
    cout << sum << endl;
}

```

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


##[ABC082_C](https://atcoder.jp/contests/abc082/tasks/arc087_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[100000];
    int n;
    cin >> n;
    rep(i,n) cin >> a[i];
    map<int,int> mp;
    rep(i,n) mp[a[i]]++;
    int ans = 0;
    for(auto p: mp){
        int x = p.first;
        int y = p.second;
        if(y < x) ans += y;
        else ans += y - x;
    }
    cout << ans << endl;
}

```

解くのにかかった時間：224分48秒
感想：一旦vectorのみを利用していたら入力例4で解が出なかった。mapの使い方を今回の問題で理解できた。なかなか使いやすそうだと感じる


###最後に
速さが足りない

難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|A|3分39秒|4問中4問|
|B|21分29秒|4問中4問|
|C|48分57秒|2問中1問|