P3111 [USACO14DEC】牛牛ジョギングJog_Sliver

タイトル説明

牛が出て、再び彼らのひづめを行使しています!N牛があります。

無限長の単一レーントラックにジョギング(1 <= N <= 100,000)。

それぞれの牛はトラック上の異なる位置で開始し、いくつかの牛はジョギング

異なる速度で。

トラックで唯一のレーンでは、牛はお互いを渡すことはできません。とき

速く牛は他の牛に追いつき、彼女は避けるようにスローダウンしています

同じ実行グループの一部になって、他の牛に実行しています。

牛は、T分(1 <= T <= 1,000,000,000)をするために実行されます。お願いします

ファーマージョンは、この時点で残されますどのように多くのグループを判断するのに役立ちます。

彼らはである場合、2頭の牛が同じグループの一部と考えるべきです

T分の終わりに同じ位置。

N(1 <= N <= 100,000)単一の長いトラックのジョギング牛であり、各牛の開始位置が異なっています。それは、単一のトラックがあるので、それらのすべてがお互いを越えて行くことはできません。速い速度は、他の牛と牛をキャッチアップするとき、彼は同じ速度のクラッシュをドロップする必要があります。私たちは逃げ出し、これらの牛グループと同じ場所と同じ速度。

チームに分割されますどのように多くの牛T(1 <= T <= 1,000,000,000)を時間を計算します。

入力形式

INPUT:(ファイルcowjog.in)

入力の最初の行は二つの整数N及びT.が含ま

次のN行はそれぞれの初期位置と速度を含みます

シングル牛。位置は非負整数であり、速度が正であります

整数; 両方の数値は最大10億です。すべての牛はで開始します

異なる位置、及びこれらの中に昇順に与えられます

入力。

出力フォーマット

OUTPUT:(ファイルcowjog.out)

T分後に残っているどのように多くのグループを示す単一の整数。

サンプル入力と出力

入力#1
5 3 
0 1 
1 2 
2 3 
3 2 
6 1

 

出力#1
 

3 

 

書式#include <アルゴリズム> 
書式#include <iostreamの> 
の#include <CStringの> 
の#include <cstdioを> 
する#include <cmath> 
の#include <キュー> 
std名前空間を使用しました。
長い長いN、T、最後[100610]。
int型ANS = 1; 
構造体牛{ 
    長い長いSPE、POS。
} [100610]。
長い長い(){読み取り
	長い長= 0、B = 1。
	チャーCH = GETCHAR()。
	一方、((CH <48 || CH> 57)&& CH = ' - '!){ 
		CH = GETCHAR()。
	} 
	(CH == ' - ')なら、{ 
		B = -1。
		CH = GETCHAR()。
	} 
	一方、(CH <48 || CH> 57){ 
		CH = GETCHAR()。
	} 
	(CH> 47 && CH <58){一方
		、A = A * 10 + CH-48。
		CH = GETCHAR()。
	}
	* bを返します。
} 

int型のmain(){ 
	N =(読み取り)、tは読み取り=(); 
    以下のために(INT i = 1; iが<= N; iは++){ 
    	[i]は.POSの=(読み取り)、[I] .speが読み取ら=(); 
        最後[I] + [I] .spe * T [i]は.POSを=。
    } 
    ため(INT I = N-1、I> = 1; I - ){ 
        IF(最終[I]> =最後[I + 1]){ 
            最後[I] =最後[I + 1]。
        } 
        {他
	    ++ ANS。
        } 
    } 
    のprintf( "%dの"、ANS)。
}

  

おすすめ

転載: www.cnblogs.com/xiongchongwen/p/11518034.html