안녕하세요. 오늘은 배열을 복원해볼 거예요.
https://www.acmicpc.net/problem/16967
그냥 배열 A랑 A를 X,Y 만큼 이동시킨 배열을 겹쳐서 더한 값이 B가 되는 것입니다.
맨 첫 줄은 A가 그대로 살아있습니다.
그래서 맨 첫줄부터 보면서 A에 있는 값을 X,Y를 더해준 위치에 있는 값에서 빼줍니다. 그러면 A가 나타나게 됩니다.
#include <iostream>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int H, W, X, Y, i, j, B[666][666] = { 0 };
cin >> H >> W >> X >> Y;
for (i = 0; i < H + X; i++)
{
for (j = 0; j < W + Y; j++)
{
cin >> B[i][j];
}
}
for (i = 0; i < H; i++)
{
for (j = 0; j < W; j++)
{
B[i + X][j + Y] -= B[i][j];
cout << B[i][j] << ' ';
}
cout << "\n";
}
}
감사합니다.