鹊桥相会

鹊桥相会

时间: 1ms        内存:64M

描述:

一年一度的七夕又要到了,可歌可泣的牛郎织女又可以在鹊桥相会了。不知道大家有没有雅兴陪 redraiment坐在葡萄藤下倾听他们的对话。
我们知道,牛郎要与织女相见,必须要有喜鹊搭桥。所以,牛郎必须在天河岸上等待,直到有喜鹊经过,于是牛郎可以搭乘这只喜鹊往河对岸走。当然,牛郎急着去见织女,所以在途中,如果有速度更快的喜鹊赶上了他,他就会换乘那只速度更快的喜鹊。
我们可以假定喜鹊的速度是恒定不变的,并且喜鹊一直是沿直线飞行的(不转弯,更不回头),牛郎坐上喜鹊所花的时间忽略不计。
现给出天河的宽度、每只喜鹊的初始位置(我们设牛郎所在位置为0,天河方向为正方向)以及它们的速度(有可能是负数,代表喜鹊往反方向飞行),这些数据都是整数。请你来帮忙计算一下牛郎到达对岸与织女相会最少需要多少时间,让他们早些有情人终成眷属。^_^
当然,如果没有喜鹊来搭载牛郎,我们可怜的牛郎就到不了对岸与织女相会了,那我们只好很遗憾的跟牛郎说:“Can't Solve”,我们祈祷不要发生这样的事情。

输入:

第一行有两个数据w、n,分别代表天河的宽度(单位:km)和喜鹊的只数(1≤w≤1000, 1≤n≤10000)。
接下来从第二行到第 n+1行每行都有两个数据t、v,分别代表1只喜鹊的初始位置(单位:m)和它的飞行速度(单位:m/s)(-1000≤t≤1000, -100≤v≤100)。
所有的数据范围都不会超过32位整数的表示范围(用int型数据不会溢出)。
输入以0 0结束。

输出:

如果牛郎能到达对岸输出他到达对岸所花的总时间(结果精确到秒即可,小数部分舍去);否则输出“Can't Solve”。

示例输入:

1 1
0 1
0 0

示例输出:

1000

提示:

参考答案(内存最优[748]):

#include <stdio.h> 
int main() 
{ 
    int a[10],i,j,k; 
    for(i=0;i<=8;i++) 
       { 
          scanf("%d",&a[i]); 
       } 
    scanf("%d",&a[9]); 
    for(i=0;i<9;i++) 
    { 
        for(j=0;j<9-i;j++) 
        { 
            if(a[j]>a[j+1]) 
           { 
               k=a[j]; 
               a[j]=a[j+1]; 
               a[j+1]=k; 
           } 
        } 
    } 
    for(i=0;i<=9;i++) 
    { 
        printf("%d\n",a[i]); 
    } 
    return 0; 
} 

参考答案(时间最优[0]):

#include<stdio.h>
int main()
{int wyp(float,float);
	int w,t,n,v,x;
	int s,y,a=100000000;
	1<=w&&w<=1000;
	1<=n&&n<=1000;
	-1000<=t&&t<=1000;
	-100<=v&&v<=100;
	scanf("%d %d",&w,&n);
	if(n==0) printf("Can't Solve");
	x=n;
     while(scanf("%d %d",&t,&v)!=EOF)
	 {y=a;
	 if(t==0&&v==0) break;
		 
		 if(t<=0) a=(1000*w-t)/v;
n=n-1;
if(y<=a) s=y;
else s=a;
if(n==0) break;
}
	  
	 printf("%d",s);
	 /*int wyp(float x,float y)
	 {
		 if (x>=y) return y;
		 else return x;
	 }*/
	 return 0;

}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注