수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

2008 정올 중고등부 시도 예선문제.

우수리

2023.04.01

2008 정올 중고등부 시도 예선문제.질문 내용 :

고속철도의 시험선로를 구축해 열차를 시험운행 아는데, 선로의 상태를 검사하기 위해, 선로의 지정된 검사구간을 담당하는 로봇을 설치하였다. 그런데 검사구간이 서로 겹치는 로봇 사이에는 빈번한 데이터 고환이 필요하다. 따라서 이를 지원할 데이터 송수신 장치를 모든 로봇에 설치할 뿐만 아니라, 특별한 데이터처리장치를 로봇에 부착 하기로 하였다. 그러나 이 처리장치는 모든 로봇에 부착하지 않아도 되지만, 두 로봇이 담당하고 있는 검사구간이 서로 겹치면 이 두로봇 중에서 적어도 하나에는 반드시 부착되어야 한다.

시험선로를 눈금이 매겨진 직선으로 나타내면, 로봇의 검사구간은 이 직선 위에 있다고 할 때, 로봇들이 담당하는 선로의 검사구간을 입력 받아 로봇에 처리장치를 부착할 수 있는 모든 경우의 수를 구하시오. 경우의 수가 20,080,510이상일 때에는 20,080,510으로 나눈 나머지를 출력한다.

입력형식

입력파일의 이름은 input.txt이다. 첫째줄에 로봇의 개수 n이 입력된다. 둘째 줄부터 n개의 줄에 한 줄에 하나씩 로봇이 담당하는 검사구간의 왼쪽 끝점의 좌표와 오른쪽 끝점의 좌표가 빈 칸을 사이에 두고 주어진다. 각 검사구간의 왼쪽 끝점의 좌표가 오른쪽 끝점의 좌표보다 항상 작다. 또한 검사구간들의 끝점들의 좌표는 모두 서로 다르다. 다시 말하면, 어떤 좌표 값에도 두 개 이상의 검사구간의 끝점이 위치하지 않는다.

출력형식

출력 파일의 이름은 output.txt이다. 첫째 줄에 문제의 조건을 만족하면서 처리장치를 부착할 수 있는 경우의 수를 출력한다. 만약 경우의 수가 20,080,510 이상일 때에는 20,080,510 으로 나눈 나머지를 출력한다.

입력(intput.txt)
4
6 20
13 49
29 41
34 55

출력(output.txt)
7

프로그램
#include stdio.h
#include stdlib.h
#define maxn 10005

int n;
int train[maxn][2];
int nl[maxn][2];
int x[maxn];
int res[maxn];
void swap(int &a, int &b){
int t;
t=a;
a=b;
b=t;
}
void bsort(int ar[][2], int sz){
int i, j;
int m;
int index;
for(i=0; isz; i++){
m=ar[i][1];
index=i;
for(j=i+1; jsz; j++){
ㄱ

}
}
if(i != index){
swap(ar[i][0], ar[index][0]);
swap(ar[i][1], ar[index][1]);
}
}
}
int main(void)
{
file * fin=fopen(input.txt, r);
file * fout=fopen(output.txt, w);
int i, j;
int t;

fscanf(fin, %d, &n);
for(i=0; in; i++){
fscanf(fin, %d%d, &train[i][0], &train[i][1]);
}
fclose(fin);

bsort(train, n);
for(i=0; in; i++){
nl[1][0]=i;
nl[i][1]=train[i][0];
}
bsort(nl, n);

for(i=0; in; i++){
x[nl[i][0]]=n;
 sp; if(train[0][1]=nl[i][1]) break;
}

if(i != n){
t=0;
for(j=i; jn; j++){
while(tn && train[t][1]=nl[j][1]){
t++;
}
x[nl[j][0]]=t-1;
}
}

ㄷ

for(i=1; in; i++){
ㄴ

res[i]=res[i]%20080510;
}

fprintf(fout, %d\n, res[n-1]);
fclose(fout);

system(pause);
return 0;
}

33. 위 코드에서 bsort함수는 주어진 배열을 정렬하는 함수이다. bsort안에 있는 빈 칸 r에 알맞은 내용은?

답은
if(mar[j][1]){
m=ar[j][1];
index=j;
}

34 위의 빈 칸 ㄴ에 알맞은 내용은?

답은
res[i]=res[i-1]+res[x[i]];

35위의 빈칸 ㄷ에 알맞은 내용은?

답은
res[n]=1;
res[0]=2;

인데요;

저거 답을 빈칸에 넣고 실행하니까 출력이 이상하게 되네요.

예시에 나온 값을 입력했는데 출력된 값이 8이나오고...

이거 어떤 원리로 돌아가는 프로그램인지, 또 왜 이렇게 나오는건지 (문제가 이상한건지) 알려주세요.

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2698012 2~9가아닌수 아놀드 2025-06-13
2697980 for에 gets함수를 넣으니까 왜 반복이 안되죠 ㅜ (2) 펴라 2025-06-12
2697952 2차배열과 함수문의^^; VanilLa 2025-06-12
2697924 다차원 배열 질문있습니다 두동 2025-06-12
2697893 정올 :: 기초다지기 a9007 배열7 (문제가 이상함 -_-) 흰두루 2025-06-12
2697862 Unable......... 지정된 파일을 찾을 수 없습니다!! (1) Creator 2025-06-11
2697761 그러니까여제말은... (2) 새론 2025-06-10
2697737 정올 문제좀 풀어보신분~ 레오 2025-06-10
2697709 rand함수 질문좀요! (6) 가막새 2025-06-10
2697683 C언어 변수뒤 표시가 이해안되는게 있습니다. 소미 2025-06-10
2697660 껍데기딜 만들고 난후 어느핫키 누르면 코드검색이라도 뜨고 그다음 무반응 해결좀 (2) 움찬 2025-06-09
2697634 c언어로 감성사전 만들기! (1) 도란도란 2025-06-09
2697605 이 함수좀... agine 2025-06-09
2697574 배열 기본적인질문 (3) 민트향 2025-06-09
2697549 배열 초기화 (4) 나리 2025-06-08
2697465 수다님...^^ (2) 가론 2025-06-08
2697432 서버 만드는 함수에서 궁금한게있어요~ 파랑 2025-06-07
2697401 열혈강의 문제오류 (1) 꿈 2025-06-07
2697374 기초적인 C언어 프로그래밍 입니다. 얼 2025-06-07
2697341 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 무지개 2025-06-07
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com