前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3893: [Usaco2014 Dec]Cow Jog

3893: [Usaco2014 Dec]Cow Jog

作者头像
HansBug
发布2018-04-10 17:10:32
5700
发布2018-04-10 17:10:32
举报
文章被收录于专栏:HansBug's LabHansBug's Lab

3893: [Usaco2014 Dec]Cow Jog

Time Limit: 10 Sec  Memory Limit: 128 MB

Submit: 174  Solved: 87

[Submit][Status][Discuss]

Description

The cows are out exercising their hooves again! There are N cows jogging on an infinitely-long single-lane track (1 <= N <= 100,000). Each cow starts at a distinct position on the track, and some cows jog at different speeds. With only one lane in the track, cows cannot pass each other. When a faster cow catches up to another cow, she has to slow down to avoid running into the other cow, becoming part of the same running group. The cows will run for T minutes (1 <= T <= 1,000,000,000). Please help Farmer John determine how many groups will be left at this time. Two cows should be considered part of the same group if they are at the same position at the end of T minutes. 在一条无限长的跑道上有N头牛,每头牛有自己的初始位置及奔跑的速度。牛之间不能互相穿透。当一只牛追上另一只牛时,它不得不慢下来,成为一个群体。求T分钟后一共有几个群体。

Input

The first line of input contains the two integers N and T. The following N lines each contain the initial position and speed of a single cow. Position is a nonnegative integer and speed is a positive integer; both numbers are at most 1 billion. All cows start at distinct positions, and these will be given in increasing order in the input.

Output

A single integer indicating how many groups remain after T minutes.

Sample Input

5 3 0 1 1 2 2 3 3 2 6 1

Sample Output

3

HINT

Source

Silver

题解:显然,一头牛的速度不会被后面的牛所影响,于是直接O(n)扫一遍,像打擂台一样即可,这样子分堆数也就出来啦

代码语言:javascript
复制
 1 /**************************************************************
 2     Problem: 3893
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:1204 ms
 7     Memory:1008 kb
 8 ****************************************************************/
 9  
10 var
11    i,j,k,l,m,n,ans:longint;
12    a,b:array[0..100100] of longint;
13    t:int64;
14 begin
15      readln(n,t);
16      for i:=1 to n do readln(a[i],b[i]);
17      a[n+1]:=maxlongint;
18      b[n+1]:=maxlongint;
19      l:=n+1;
20      for i:=n downto 1 do
21          begin
22               if (a[i]+(b[i]*t))<(a[l]+(b[l]*t)) then
23                  begin
24                       inc(ans);
25                       l:=i;
26                  end;
27          end;
28      writeln(ans);
29 end.          
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3893: [Usaco2014 Dec]Cow Jog
  • Description
  • Input
  • Output
  • Sample Input
  • Sample Output
  • HINT
  • Source
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档