개발자 톡
연습문제 톡
[21년 재직자 대회 예선] 이미지 프로세싱
반례 부탁드립니다! [21년 재직자 대회 예선] 이미지 프로세싱
- 등록일
- 2021-12-29 11:02:49
- 조회수
- 631
- 작성자
- ryucha
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int cnt=0;
int chk(int** arr, int Xi, int Xj, int H, int W, int* NXi, int* NXj, int* SXi, int* SXj, int In)
{
int flag=0;
if(Xi-2 >= 0)
{
if((arr[Xi-1][Xj-1] ==In) && (arr[Xi-2][Xj-1]==In))
{
flag=1;
*NXi = Xi-1;
*NXj = Xj;
}
}
if(Xj-2 >= 0)
{
if((arr[Xi-1][Xj-1] ==In) && (arr[Xi-1][Xj-2]==In))
{
if(flag==0)
{
flag=1;
*NXi = Xi;
*NXj = Xj-1;
}
else
{
SXi[cnt] = Xi;
SXj[cnt] = Xj-1;
cnt++;
}
}
}
if(Xi < H)
{
if((arr[Xi-1][Xj-1]==In) && (arr[Xi][Xj-1]==In))
{
if(flag==0)
{
flag=1;
*NXi = Xi+1;
*NXj = Xj;
}
else
{
SXi[cnt] = Xi+1;
SXj[cnt] = Xj;
cnt++;
}
}
}
if(Xj < W)
{
if((arr[Xi-1][Xj-1]==In) && (arr[Xi-1][Xj]==In))
{
if(flag==0)
{
flag=1;
*NXi = Xi;
*NXj = Xj+1;
}
else
{
SXi[cnt] = Xi;
SXj[cnt] = Xj+1;
cnt++;
}
}
}
if(flag==0)
{
*NXi = 0;
*NXj = 0;
}
return flag;
}
int main(int argc, char** argv) {
int H, W, I, Q, Xi, Xj, C, In;
int** arr;
int * SXi;
int * SXj;
int test_cnt=0;
int lXi,lXj;
int NXi, NXj;
std::cin>>H;
std::cin>>W;
arr = new int* [H];
SXi = new int[H*W];
SXj = new int[H*W];
for (int i = 0; i < H; i++)
{
arr[i] = new int[W];
}
for(int i=0;i>I;
arr[i][j] = I;
}
}
std::cin>>Q;
for(int i=0;i>Xi>>Xj>>C;
lXi = Xi;
lXj = Xj;
In = arr[lXi-1][lXj-1];
//같은 값 체크로직
while((chk(arr,lXi,lXj,H,W,&NXi, &NXj,SXi,SXj, In)==1)||(cnt>0))
{
arr[lXi-1][lXj-1] = C;
if((NXi==0)&&(NXj==0)&&(cnt>0))
{
lXi = SXi[cnt-1];
lXj = SXj[cnt-1];
SXi[cnt-1] = 0;
SXj[cnt-1] = 0;
cnt--;
}
else
{
lXi = NXi;
lXj = NXj;
}
test_cnt++;
}
arr[lXi-1][lXj-1] = C;
}
for(int i=0;i
반례 찾기가 힘드네요ㅠ 감사합니다.
#[21년_재직자_대회_예선]_이미지_프로세싱
#c++