일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 정보과학
- 리눅스 명령어
- 독서 감상문
- C
- c언어
- 독후감
- 수학영재원
- 반복문
- 백도어
- if문
- 다중반복문
- 정보영재원
- Linux
- 풀이&소스코드저작권:왕유승
- 제어문
- 영재교육원
- 자료구조
- For문
- 리눅스
- 알고리즘
- API
- Backdoor
- 배열
- 정보올림피아드
- C++
- 문제출저:www.dovelet.com
- 프로그래밍
- IT
- 참조은요양병원
- DBMS
- Today
- Total
되는대로 살자
[C언어 기출문제&풀이] 개미 (미완) 본문
일련의 개미떼들이 길이가 L cm 인 수평 작대기를 걸어간다. 이 들은 각 초당 1 cm 의 속도로 걸어가고 있다.
개미떼들이 작대기의 끝지점에 도달 하면 그 들은 이 작대기에서 자유 낙하한다. 두 마리의 개미가 서로 만난다면 그들은 가는 방향을 바꾸어 반대 방향으로 걸어간다. 개미가 현재 있는 작대기의 위치를 알지만 우리는 개미가 걷는 방향을 알지는 못한다.
우리가 할 일은 모든 개미들이 작대기에서 자유낙하 할수 있는 최대 빠른 시간과 느린 시간을 구하는 것이다.
입력
첫 줄에는 두 개의 정수가 입력으로 주어진다. 첫 수는 작대기의 길이 이고 다른 하나는 개미의 수 n 이다. 다음 n 개의 수는 개미가 현재 위치하고 있는 위치이다.
입력의 모든 수는 1000000 이하의 정수이다.
출력
두 수를 출력한다. 첫 수는 제일 빠른 시간 , 가장 느린 시간이다.
입출력 예
입력 10 3 2 6 7 출력 4 8 입력 214 7 11 12 7 13 176 23 191 출력 38 207
출처: Waterloo local 2004.09.19
나 여태 잔거 아니예요 여태 하루종일 이 문제 풀었어요 ....혹시 지나가다가 , 할짓없는 C 프로그래머 분들은 에러좀 고쳐 주시면 감사하겠습니다.
소스코드
#include <stdio.h>
#include <math.h>
int main()
{
int i,l,n,max,min,center,pos,d,longl,shortl;
max=center=0;
min=d=1000000;
scanf("%d %d",&l,&n);
for(i=1;i<=n;i++)
{
scanf("%d",&pos);
if(max<pos) max=pos;
if(min>pos) min=pos;
if(abs(pos-(l-pos))<d)
{
d=abs(pos-(l-pos));
center=pos;
}
}
if(2*(seil((max+min)/2)-1)-(min)>2*(max-seil((max+min)/2))+l-max+1)
longl=(max+min)/2+(max+min+1)/2-min;
else
longl=max-(max+min+1)/2+(l-(max+min+1)/2+1);
if(center>l-center)
shortl=l-center;
else
shortl=center;
printf("%d %d",shortl,longl);
}
'2009~2014 > C/C++' 카테고리의 다른 글
[C언어 기출문제&풀이] 생일 파이 (오류수정) (0) | 2010.11.09 |
---|---|
[C언어 기출문제&풀이] herd sum (0) | 2010.11.09 |
[C언어 기출문제&풀이] Ant on a Chessboard (0) | 2010.11.08 |
[C언어 기출문제&풀이] Count (0) | 2010.11.08 |
[C언어 기출문제&풀이] number steps (0) | 2010.11.08 |