zoj1745 Are We There Yet?

来源:互联网 发布:猎天使魔女 知乎 编辑:程序博客网 时间:2024/05/16 17:27
Are We There Yet?
Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu

Submit Status

Description

Laurie's little brother Joey has been playing Find the Cookie with her. However, after the 32,767th time, Laurie is tired of it. She wants to write a program to keep the boy occupied. Write a program to simulate a game of Find the Cookie. The game takes place in a long narrow hall, so Joey can only move forward and backward, not right or left. At the beginning of each game, a cookie is placed in the hall (not at the center of the hall) and Joey starts at the center of the hall. Joey attempts to find the cookie. He does this by moving to another point in the hall, whereupon the computer tells him whether he is "warmer" (he has moved closer to the cookie than his last position), "colder" (he has moved farther away from the cookie than his last position), "same" (he has not moved closer or farther away from the cookie), or he has reached the cookie. Joey continues until he exactly reaches the location of the cookie, which always happens within 20 moves. 


Input



Each input line represents a new game. Each input line contains at least two and at most 21 integers separated by whitespace. The integers represent locations along the hall, expressed in units of feet. Joey begins each game at location 0 feet. The first integer on an input line is the location of the cookie. This integer is guaranteed to be different from 0. The remaining integers represent locations Joey moves to, in order. Joey will never move more than 5280 feet from his original location. Joey will always reach the cookie in each game, and this will be the last move on the input line. Your program should stop processing input lines when the cookie is located at 5280 feet (a mile from the center of the hall is way too far for Joey to go for only one cookie). 


Output



For each location that Joey moves to, determine whether he is warmer, colder, the same, or has reached the cookie. Have a blank line between the output for different input lines. Follow the format in the Sample Output. 


Sample Input



5 10 11 12 3 4 5 
3 10 10 7 3 
12 5 -3 1 4 6 7 8 9 12 
5280 10 


Sample Output



Moving from 0 to 10: same. 
Moving from 10 to 11: colder. 
Moving from 11 to 12: colder. 
Moving from 12 to 3: warmer. 
Moving from 3 to 4: warmer. 
Moving from 4 to 5: found it! 

Moving from 0 to 10: colder. 
Moving from 10 to 10: same. 
Moving from 10 to 7: warmer. 
Moving from 7 to 3: found it! 

Moving from 0 to 5: warmer. 
Moving from 5 to -3: colder. 
Moving from -3 to 1: warmer. 
Moving from 1 to 4: warmer. 
Moving from 4 to 6: warmer. 
Moving from 6 to 7: warmer. 
Moving from 7 to 8: warmer. 
Moving from 8 to 9: warmer. 
Moving from 9 to 12: found it! 

Source

Southeast USA 2000
 
 
 
 
分析:
水题。但有些细节要注意。
ac代码:

#include <iostream>
#include<cstdio>
#include<cmath>//使用abs()需要
#include<cstdlib>//使用abs()需要
using namespace std;

int main()
{
    int now,last,c;
    int flag=0;
    while(scanf("%d",&c)&&c!=5280)
    {
        last=0;
        if(flag++)//还是有点巧妙的,格式输出的需要。如何处理换行。牢记
        printf("\n");
       while(scanf("%d",&now)!=EOF)
        {
            if(now==c)
            {
                printf("Moving from %d to %d: found it!\n",last,now);
                break;//每组的最后一个数据肯定是now==c,利用这个作为每组的分隔
            }
            else if(abs(now-c)>abs(last-c))
            printf("Moving from %d to %d: colder.\n",last,now);
            else if(abs(now-c)<abs(last-c))
             printf("Moving from %d to %d: warmer.\n",last,now);
            else if(abs(now-c)==abs(last-c))
             printf("Moving from %d to %d: same.\n",last,now);
             last=now;
        }
    }
    return 0;
}

0 0
原创粉丝点击