회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
새로 추가된 문제
새로 추가된 영어 문제
새로 추가된 문제 풀이
문제 순위
문제
푼 사람이 1명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ACM-ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ACM-ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
1
채점 현황
랭킹
게시판
그룹
블로그
강의
N
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
글쓰기
2583 영역구하기
2583번 - 영역 구하기
lolicon
2년 전
0
제출하자마자 틀렸습니다가 떴습니다.
예외케이스좀 알려주세요 ㅜㅜ
#include <stdio.h> #include <iostream> #include <algorithm> using namespace std; int arr[102][102]; int visit[102][102]; int cnt[10002]; int m, n, k, x1, x2, y11, y22, v; void dfs(int y, int x, int l) { visit[y][x] = 1; if (l == 1) v++; if (cnt[v] < l) cnt[v] = l; if (y > 0 && !visit[y - 1][x] && !arr[y - 1][x]) dfs(y - 1, x, l + 1); if (y < m - 1 && !visit[y + 1][x] && !arr[y + 1][x]) dfs(y + 1, x, l + 1); if (x > 0 && !visit[y][x - 1] && !arr[y][x - 1]) dfs(y, x - 1, l + 1); if (x < n - 1 && !visit[y][x + 1] && !arr[y][x + 1]) dfs(y, x + 1, l + 1); } int main() { scanf("%d%d%d", &m, &n, &k); for (int i = 0; i < k; i++) { scanf("%d%d%d%d", &x1, &y11, &x2, &y22); for (int j = y11; j < y22; j++) { for (int l = x1; l < x2; l++) { arr[m-j-1][l] = 1; } } } for (int j = 0; j < m; j++) { for (int l = 0; l < n; l++) { if (!visit[j][l] && !arr[j][l]) { dfs(j, l, 1); } } } sort(cnt + 1, cnt + v + 1); printf("%d\n", v); for (int i = 1; i <= v; i++) { printf("%d ", cnt[i]); } return 0; }
댓글을 작성하려면
로그인
해야 합니다.
lolicon 2년 전
제출하자마자 틀렸습니다가 떴습니다.
예외케이스좀 알려주세요 ㅜㅜ