#include <stdio.h>
int main()
{
int n, map[100][100] = {};
int bomb[2000][2] = {};
int player[100][100] = {};
int k=0, bx, by, bp;
int i, j, player_number = 0, death_status;
int o, v, l;
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10; j++)
{
scanf("%d", &map[i][j]);
if(map[i][j] > 0)
{
bomb[k][0] = i;
bomb[k][1] = j;
k++;
}
}
}
for(i=0; i<=11; i++)
{
for(j=0; j<=11; j++)
{
if(i==0 || j==0 || i==11 || j==11)
{
map[i][j] = -1;
}
}
}
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d %d", &player[i][0], &player[i][1]);
}
for(i=0; i<=k; i++)
{
bx = bomb[i][0];
by = bomb[i][1];
bp = map[bx][by];
for(o=1; o<=bp; o++)
{
if(map[bx+o][by] == -1)
{
break;
}
else
{
map[bx+o][by] = -2;
}
}
for(o=1; o<=bp; o++)
{
if(map[bx][by+o] == -1)
{
break;
}
else
{
map[bx][by+o] = -2;
}
}
for(o=1; o<=bp; o++)
{
if(map[bx-o][by] == -1)
{
break;
}
else
{
map[bx-o][by] = -2;
}
}
for(o=1; o<=bp; o++)
{
if (map[bx][by-o] == -1)
break;
}
else
{
map[bx][by-o] = -2;
}
}
map[bx][by] = -2;
}
int x = player[i][0], y = player[i][1];
int f, player_please_die = 0;
for(f=0; f<=n; f++)
{
x = player[player_please_die][0];
y = player[player_please_die][1];
player_please_die++;
if(map[x][y] != -2)
{
map[x][y] = player_please_die;
}
}
for(i=1; i<=10; i++)
{
for(j=1; j<=10; j++)
{
printf("%2d ", map[i][j]);
}
printf("\n");
}
// 플레이어 생존 여부 확인 및 출력
printf("Character Information\n");
for (i = 0; i < n; i++)
{
player_number++;
v = player[i][0];
l = player[i][1];
//tmi : map[player[i][0]player[i][1]]도 된다고 한다
if (map[v][l] == -2)
{
death_status = 1; // 죽으세요
}
else
{
death_status = 0; // 사세요
}
if (death_status == 1)
{
printf("player %d dead\n", player_number);
}
else if (death_status == 0)
{
printf("player %d survive\n", player_number);
}
}
return 0;
}
#include <stdio.h>
int main()
{
int n, map[12][12] = {};
int bomb[100][2] = {};
int player[8][2] = {};
int k=0, bx, by, bp;
int i, j;
int o, v, l;
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10; j++)
{
scanf("%d", &map[i][j]);
if(map[i][j] > 0)
{
bomb[k][0] = i;
bomb[k][1] = j;
k++;
}
}
}
for(i=0; i<=11; i++)
{
for(j=0; j<=11; j++)
{
if(i==0 || j==0 || i==11 || j==11)
{
map[i][j] = -1;
}
}
}
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d %d", &player[i][0], &player[i][1]);
}
for(i=0; i<k; i++)
{
bx = bomb[i][0];
by = bomb[i][1];
bp = map[bx][by];
for(o=1; o<=bp; o++)
{
if(map[bx+o][by] == -1)
{
break;
}
else if(map[bx+o][by] == 0) // 물줄기가 빈 공간에만 퍼지도록 조건 추가
{
map[bx+o][by] = -2;
}
}
for(o=1; o<=bp; o++)
{
if(map[bx][by+o] == -1)
{
break;
}
else if(map[bx][by+o] == 0) // 물줄기가 빈 공간에만 퍼지도록 조건 추가
{
map[bx][by+o] = -2;
}
}
for(o=1; o<=bp; o++)
{
if(map[bx-o][by] == -1)
{
break;
}
else if(map[bx-o][by] == 0) // 물줄기가 빈 공간에만 퍼지도록 조건 추가
{
map[bx-o][by] = -2;
}
}
for(o=1; o<=bp; o++)
{
if (map[bx][by-o] == -1)
{
break;
}
else if(map[bx][by-o] == 0) // 물줄기가 빈 공간에만 퍼지도록 조건 추가
{
map[bx][by-o] = -2;
}
}
map[bx][by] = -2;
}
for(i=0; i<n; i++)
{
if(map[player[i][0]][player[i][1]] != -2 && map[player[i][0]][player[i][1]] != -1) // 플레이어가 장애물에 위치하지 않도록 조건 추가
{
map[player[i][0]][player[i][1]] = i+1;
}
}
for(i=1; i<=10; i++)
{
for(j=1; j<=10; j++)
{
printf("%d ", map[i][j]);
}
printf("\n");
}
// 플레이어 생존 여부 확인 및 출력
printf("Character Information\n");
for (i = 0; i < n; i++)
{
if (map[player[i][0]][player[i][1]] == -2)
{
printf("player %d dead\n", i+1);
}
else if (map[player[i][0]][player[i][1]] == i+1) // 플레이어가 생존했음을 확인하도록 조건 수정
{
printf("player %d survive\n", i+1);
}
else // 플레이어가 장애물에 위치한 경우
{
printf("player %d invalid\n", i+1); // 잘못된 입력임을 알려줌
}
}
return 0;
}
이히힣 풀었지롱