AtCoder 生活　9日目

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

#9日目

今日は、ABC054からABC058のB問題を解きました。
そしてABC160にも参加しました。

##ABC054_B

[Template Matching]
(https://atcoder.jp/contests/abc054/tasks/abc054_b)


```c++

#include<bits/stdc++.h>
#include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(n);i++)
using namespace std;
int main(){
    int N,M;
    cin >> N >> M;
    vector<vector<char>> A(N,vector<char>(N));
    vector<vector<char>> B(M,vector<char>(M));
    rep(i,N)rep(j,N) cin >> A[i][j];
    rep(i,M)rep(j,M) cin >> B[i][j];
    bool ans = true;
    rep(k,M){
        rep(i,N-M+1){
            rep(j,N-M+1){
                rep(k,M){
                    rep(l,M){
                        if(A[i+k][j+l] != B[k][l]) ans = false;
                    }
                }
                if(ans)cout << "Yes" << endl;
                return 0;
            }
        }
    }
    cout << "No" <<endl;
}


```

このタイプの問題が毎回解けない、、

##ABC055_B


[Training Camp]
(https://atcoder.jp/contests/abc055/tasks/abc055_b)


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

int main(){
	int N;
  	cin >> N;
  	int64_t mas =1;
  	int res = pow(10,9)+7;
  	for(int i =0;i<N;i++){
    	mas = mas*(i+1)%res;
    }
  	cout << mas << endl;
}


```
累乗の書き方は調べました。

##ABC056_B

[NarrowRectanglesEasy]
(https://atcoder.jp/contests/abc056/tasks/abc056_b)

```c++

#include<bits/stdc++.h>
using namespace std;
int main(){
	int W,a,b;
  	cin >> W >> a >> b;
  	if(a == b)cout << 0 << endl;
  	else cout << max(abs(a-b)-W,0) << endl;
}

```

##ABC057_B

[Checkpoints]
(https://atcoder.jp/contests/abc057/tasks/abc057_b)

```c++

#include <bits/stdc++.h>
using namespace std;
int main(){
	int N,M;
  	cin >> N >> M;
  	int a[N],b[N];
  	for(int i=0;i<N;i++)cin >> a[i] >> b[i];
  	int c[M],d[M];
  	for(int i=0;i<M;i++)cin >> c[i] >> d[i];
  	for(int i=0;i<N;i++){
      	int min_dis = abs(a[i]-c[0])+abs(b[i]-d[0]),checkpoint =1;
    	for(int j=1;j<M;j++){
        	int dis = abs(a[i]-c[j])+abs(b[i]-d[j]);
          	if(min_dis > dis){
            	min_dis = dis;
              	checkpoint =j+1;
            }
        }
        cout << checkpoint << endl;
    }
}


```

かなり自力で行けたが、完成させることが出来なかった。

##ABC058_B

[∵∴∵]
(https://atcoder.jp/contests/abc058/tasks/abc058_b)


```c++

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

int main() {
    string O, E;
    cin >> O >> E;
    for (int i = 0; i < O.size(); ++i) {
        cout << O[i];
        if (i <= E.size() - 1)cout << E[i];
    }
    cout << endl;
}

```

微妙に答えにたどり着けなかった。

##[ABC160_A](https://atcoder.jp/contests/abc160/tasks/abc160_a)

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

int main(){
	string S;
  	cin >> S;
  	if(S[2]==S[3] && S[4]==S[5])cout<< "Yes" << endl;
  	else cout<< "No" << endl;
  	cout<< S[5] << endl;
}


```

##[ABC160_B](https://atcoder.jp/contests/abc160/tasks/abc160_b)

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

int main(){
	int X;
  	cin >> X;
  	int x = X/500;
  	int y = (X-500*x)/5;
    cout << 1000*x + 5*y << endl;
}
```

A問題もB問題もかなり簡単に解けるようになったけれど、C問題が解けないのがつらい
![スクリーンショット 2020-03-29 8.37.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606053/3fdd55cb-3d90-bfb5-7f72-0d3f8259a4a5.png)