AtCoder 生活　52日目

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

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

|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC023|A|◯|2分25秒|
|ABC023|B|✕|88分52秒|
|ABC022|A|◯|12分49秒|
|ABC022|B|◯|11分16秒|
|ABC021|A|◯|27分54秒
|ABC021|B|◯|60分6秒|
|ABC020|A|◯|1分48秒|
|ABC020|B|◯|13分47秒|
|ABC098|C|✕|221分58秒|
|ABC094|C|◯|102分29秒|


##[ABC023](https://atcoder.jp/contests/abc023)

###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;
    cin >> x;
    int a = x/10;
    int b = x%10;
    cout << a+b << endl;
}

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


###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;
    string s;
    cin >> n >> s;
    bool f = true;
    rep(i,n){
        if(s[i] == 'a'){
            if(s[n-i-1] != 'c') f = false;
        }
        if(s[i] == 'c'){
            if(s[n-i-1] != 'a') f = false;
        }
        if(s[i] == 'b'){
            if(s[n-i-1] != 'b') f = false;
        }
    }
    if(f && n%2 != 0) cout << n/2 << endl;
    else cout << -1 << endl;
}

```
解くのにかかった時間：88分52秒
感想：解けそうで解けなかった



##[ABC022](https://atcoder.jp/contests/abc022)

###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,s,t,w;
    cin >> n >> s >> t >> w;
    int ans = 0;
    if(s <= w && w <= t)ans++;
    rep(i,n-1){
        int a;
        cin >> a;
        w -= a;
        w = max(w,0);
        if(s <= w && w <= t)ans++;
    }
    cout << ans << endl;
}

```
解くのにかかった時間：12分49秒


###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 INF = 1e6;

int main(){
    int n;
    cin >> n;
    vector<int> cnt(INF);
    int ans = 0;
    rep(i,n){
        int a;
        cin >> a;
        cnt[a]++;
        if(cnt[a] >= 2)ans++;
    }
    cout << ans << endl;
}

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



##[ABC021](https://atcoder.jp/contests/abc021)

###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;
    int a = n/8;
    n %= 8;
    int b = n/4;
    n %= 4;
    int c = n/2;
    n %= 2;
    cout << a + b + c + n << endl;
    rep(i,a){
        cout << 8 << endl; 
    }
    rep(i,b){
        cout << 4 << endl; 
    }
    rep(i,c){
        cout << 2 << endl; 
    }
    rep(i,n){
        cout << 1 << endl; 
    }
}

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


###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,a,b;
    cin >> n >> a >> b;
    int k;
    cin >> k;
    vector<int> cnt(n+1);
    cnt[a]++;
    cnt[b]++;
    rep(i,k){
        int x;
        cin >> x;
        cnt[x]++;
        if(cnt[x] == 2){
            cout << "NO" << endl;
            return 0;
        }
    }
    cout << "YES" << endl;
}

```
解くのにかかった時間：60分6秒



##[ABC020](https://atcoder.jp/contests/abc020)

###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 q;
    cin >> q;
    if(q == 1)cout << "ABC" << endl;
    else cout << "chokudai" << endl;
}

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


###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 = 0;
    int c = b;
    while(c/10 > 0){
        c /= 10;
        r++;
    }
    int s = pow(10,r);
    int ans = s*a + b;
    cout << ans*2 << endl;
}

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


##[ABC098_C](https://atcoder.jp/contests/abc098/tasks/arc098_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;
    string s;
    cin >> n >> s;
    int ce = 0;
    int cw = 0;
    rep(i,n){
        if(s[i] == 'E')ce++;
        else cw++;
    }
    int ans = 1e9;
    int e = ce;
    int w = 0;
    rep(i,n){
        if(s[i] == 'E') e--;
        ans = min(ans,e+w);
        if(s[i] == 'W') w++;
    }
    cout << ans << endl;
}

```

解くのにかかった時間：221分58秒
感想：全然問題を理解してなかった。


##[ABC094_C](https://atcoder.jp/contests/abc094/tasks/arc095_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<int> x(n);
    vector<int> b(n);
    rep(i,n){
        cin >> x[i];
        b[i] = x[i];
    }
    int l = n/2;
    sort(b.begin(),b.end());
    int s = b[l];
    int t = b[l+1];
    if(s == t){
        rep(i,n)cout << s << endl;
    }
    else{
        rep(i,n){
            if(x[i] <= s)cout << t << endl;
            if(x[i] >= t)cout << s << endl;
        }
    }
}

```

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


###最後に
茶色diffをもっと早く解けるようになりたい

難易度|かかった平均時間|解けた問題数|
|:-:|---|---|
|A|10分51秒|4問中4問|
|B|28分23秒|4問中3問|
|C|102分29秒|2問中1問|