部内バチャ解説 (PCK対策2.5 by コン研)

##　1問目
↓回答済み
[B - チーム戦　(Teamwork)](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#b---%E3%81%AE%E7%B5%82%E7%84%89%E3%82%92%E5%91%8A%E3%81%92%E3%82%8B-%E3%83%91%E7%A0%94%E5%90%88%E5%AE%BF%E3%82%B3%E3%83%B3%E3%83%9A%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3-3%E6%97%A5%E7%9B%AE)

##　2問目
↓回答済み
[B - ㍻の終焉を告げる](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#b---%E3%81%AE%E7%B5%82%E7%84%89%E3%82%92%E5%91%8A%E3%81%92%E3%82%8B-%E3%83%91%E7%A0%94%E5%90%88%E5%AE%BF%E3%82%B3%E3%83%B3%E3%83%9A%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3-3%E6%97%A5%E7%9B%AE)

##　3問目
↓回答済み
[A - ニコニコ文字列判定](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#a---%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E6%96%87%E5%AD%97%E5%88%97%E5%88%A4%E5%AE%9A-%E7%AC%AC4%E5%9B%9E-%E3%83%89%E3%83%AF%E3%83%B3%E3%82%B4%E3%81%8B%E3%82%89%E3%81%AE%E6%8C%91%E6%88%A6%E7%8A%B6-%E4%BA%88%E9%81%B8)

##　4問目
↓回答済み
[A - WAsedAC](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#a---wasedac-%E6%97%A9%E7%A8%B2%E7%94%B0%E5%A4%A7%E5%AD%A6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%B3%E3%83%B3%E3%83%86%E3%82%B9%E3%83%882019)

##　5問目
↓回答済み
[A - Still TBD](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#a---still-tbd-atcoder-beginner-contest-119)

## 6問目
問題リンク: https://atcoder.jp/contests/abc132/tasks/abc132_a
### 解説
#### ソートする
ソートすると条件を満たす場合は1文字目と2文字目が一緒になり，3文字目と４文字目が一緒になることがわかると思います．
そして，2文字目と３文字目の文字が違っていたら"Yes"を表示しましょう．

```cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  string s;
  cin >> s;
  sort(s.begin(),s.end());
  if(s.at(0)==s.at(1) && s.at(1)!=s.at(2) && s.at(2)==s.at(3))cout << "Yes" << endl;
  else cout << "No" << endl;
}

```
#### 全探索
全探索したら特定の文字を基準にした時その文字と同じ文字はそれ自身を含めて二つなはずです．

```cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  string s;
  cin >> s;
  for(int i=0;i<4;i++){
    int cnt=0;
    for(int j=0;j<4;j++)if(s.at(i)==s.at(j))cnt++;
    if(cnt!=2){
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
}
```
## ７問目
問題リンク: https://atcoder.jp/contests/cpsco2019-s1/tasks/cpsco2019_s1_a
### 解説
最小となる値は本の数を3で割って切り上げた値です．
一方，最大の値は チーム数 か 本の個数 のうちの小さい方です．

```cpp
#include <bits/stdc++.h>
using namespace std;

int main() {
  int n,a;
  cin >> n >> a;
  cout << (a+2)/3 << " " << min(n/3,a) << endl;
}
```

## 8問目
↓回答済み
[C - 異世界転生](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#異世界転生-技術室奥プログラミングコンテスト4-day1)

## 9問目
↓回答済み
[B - 文字列大好きいろはちゃんイージー](https://qiita.com/kubo_programmer/items/4d2f558bd247fe6ce52b#b---%E6%96%87%E5%AD%97%E5%88%97%E5%A4%A7%E5%A5%BD%E3%81%8D%E3%81%84%E3%82%8D%E3%81%AF%E3%81%A1%E3%82%83%E3%82%93%E3%82%A4%E3%83%BC%E3%82%B8%E3%83%BC--iroha-loves-strings-abc-edition-atcoder-beginner-contest-042)

## 10問目
↓回答済み
[B - Two Anagrams](https://qiita.com/kubo_programmer/items/c2eb4fa55a8d28d63c90#b---two-anagramsatcoder-beginner-contest-082)

## 11問目
↓回答済み
[B - Some Sums](https://qiita.com/kubo_programmer/items/4d2f558bd247fe6ce52b#b---some-sums-atcoder-beginner-contest-083)

## 12問目
↓回答済み
[B - Long Long Ago](https://qiita.com/kubo_programmer/items/d892a0f3c5b668996788#b---long-long-ago-%E6%8A%80%E8%A1%93%E5%AE%A4%E5%A5%A5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%B3%E3%83%B3%E3%83%86%E3%82%B9%E3%83%884-day1)

## 13問目
問題リンク: https://atcoder.jp/contests/abc080/tasks/abc080_b
### 解説
下記のコードのwhile文のような処理で各桁の総和を取得可能です．
これは過去記事でもなんども言及してあるので今回は割愛させていただきます．

```cpp
#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  cin >> n;
  int cp = n;
  int sum=0;
  while(cp){
    sum += cp%10;
    cp /= 10;
  }
  if(n%sum)cout << "No" << endl;
  else cout << "Yes" << endl;
}
```

## 14問目
問題リンク: https://atcoder.jp/contests/abc088/tasks/abc088_b
### 解説
コメントを参考に確認してください

```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){

    //入力部
    int n;
    vector<int> a(100);
    cin >> n;
    for(int i=0;i<n;i++)cin >> a.at(i);

    //計算部
    sort(a.begin(),a.end()); //ソート関数でソートします(今回の配列長ならバブルソートでも可)
    reverse(a.begin(),a.end());// 昇順から降順に反転
  
    int even = 0, odd = 0; //偶数、奇数それぞれの要素の総和を格納する変数を用意
    for(int i=0;i<n;i++){
        if(i%2) odd += a.at(i); // 奇数個目の要素なら
        else even += a.at(i); // 偶数個目の要素なら
    }

    //出力部
    cout << even-odd << endl;
    return 0;
}

```

## 15問目
リンク: https://atcoder.jp/contests/abc095/tasks/abc095_b
### 解説
まずはXからN種類のドーナツを作る際の必要な量だけ減らします．
その後，最も必要なこなの量が少ないドーナツの小麦量でそれを割ります．
この割った結果と最初に作ったN個のドーナツの数を足せば答えが出ます．

```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,x;
    cin >> n >> x;

    int MIN = 10000;
    for(int i=0;i<n;i++){
      int a;
      cin >> a;
      x-=a;
      MIN = min(MIN,a);
    }
    
    cout << n+x/MIN << endl;
}
```

## 16問目
↓回答済み
[A - 値札](https://qiita.com/kubo_programmer/items/d892a0f3c5b668996788#a---%E5%80%A4%E6%9C%AD)