일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- IT
- 알고리즘
- 프로그래밍
- if문
- API
- 수학영재원
- 리눅스
- 반복문
- DBMS
- 리눅스 명령어
- 독서 감상문
- 문제출저:www.dovelet.com
- For문
- c언어
- C++
- 정보과학
- 제어문
- 영재교육원
- 백도어
- 다중반복문
- C
- 정보올림피아드
- 풀이&소스코드저작권:왕유승
- 참조은요양병원
- Backdoor
- Linux
- 배열
- 정보영재원
- 자료구조
- 독후감
Archives
- Today
- Total
되는대로 살자
[C언어 기출문제&풀이] 제출 본문
프로그램 명: up_down
제한시간: 1 초
Nikky 와 Byron 체육시간에 게임을 하고 있다.
선생님이 Nikky 에게는 a 보 전진 후에 b 보 후퇴하게 , Byron 에게는 c 보 전진 후 d 보 후퇴하는 작업을 반복적으로 하게 했다.
둘은 같은 보폭을 가지고 한 보폭당 걸리는 시간이 같다.
s 스텝 이후 선생님이 휘슬을 분 경우 둘 중 누가 처음 위치보다 멀리 가 있는가를 알아내는 프로그램을 하라.
입력
5 개의 정수 a,b,c,d,s 가 주어진다.단, a,b,c,d 는 100 이하의 정수이고 a > b , c > d 이고 s 는 10000 이하의 정수이다.
출력
세 가지 중 하나를 출력한다.- Nikky
- Byron
- Tied
입출력 예
입력 4 2 5 3 12 출력 Byron
입출력 보충
Nikky 는 12 스텝 후의 상태는 4 - 2 + 4 - 2 즉 첫 위치에서 4 스텝 만큼 떨어지고 Byron 는 5 - 3 + 4 즉 6 스텝 떨어져서 Byron 이 더 멀리 떨어져 있다.출처:uwaterloo junior
풀이 : 소스에다가 이번엔 주석을 다는 새로운 방식으로 해보겠습니다. ㅋ
크흑... 좀 어려웠다.
01 |
int main() |
02 |
{ |
03 |
int a,b,c,d,s,asicle,bsicle,ad,bd; |
// 변수설명 이해만 다 되면 돌아가는건 알아서 보면 됩니다.
04 |
scanf ( "%d%d%d%d%d" ,&a,&b,&c,&d,&s); |
05 |
asicle=a+b; // 15 |
06 |
bsicle=c+d; // 17 |
07 |
if (s%asicle==0) ad=(a-b)*(s/asicle); |
왜? 그게 움직인 거리니까 ~
08 |
else |
//여기 부터가 짜증나지....
09 |
{ |
10 |
if ((s%asicle)<=a) ad=(a-b)*(s/asicle)+(s-asicle); |
11 |
else ad=(a-b)*(s/asicle)+(s-a); |
12 |
} |
13 |
if (s%bsicle==0) bd=(c-d)*(s/bsicle); |
14 |
else |
15 |
{ |
16 |
if (s%bsicle<=b) bd=(c-d)*(s/bsicle)+(s-bsicle); |
17 |
else bd=(c-d)*(s/bsicle)+bsicle+(s-c); |
18 |
} |
19 |
if (ad>bd) printf ( "Nikky" ); |
20 |
else if (bd>ad) printf ( "Byron" ); |
21 |
else if (bd==ad) printf ( "Tied" ); |
22 |
} |
'2009~2014 > C/C++' 카테고리의 다른 글
뿌요뿌요 소스코드 (0) | 2010.11.04 |
---|---|
[C언어 기출문제&풀이] 오버랩 (0) | 2010.11.04 |
[C언어 기출문제&풀이] what is n, Daddy? (0) | 2010.11.04 |
[C언어 기출문제&풀이] 축소 복사 (0) | 2010.11.04 |
[C언어 기출문제&풀이] ATM (0) | 2010.11.04 |