Alice and Bob, after played enough and completely figured out the game with colored strip, decided to ride bikes around the fountain on a circular path of length L. Alice rides with a speed v A, Bob — with a speed v B, and they have started in different directions. At the initial moment the kids were in the same point. When they “meet” (i.e., at some moment they are in the same point as in the previous were not), they joyfully exclaim (“Oh, Bob!” or “Oh, Alice!” respectively). But sometimes along the way, the kids stop to feed the squirrels. Find, how many times Alice and Bob “have met”.
Input
The first line contains integers L, T, v A, and v B that are the length of the path, the riding time and the speed of Alice and Bob, respectively (1 ≤ L ≤ 10 9; 1 ≤ T≤ 10 6; 1 ≤ v A, v B ≤ 10 3).
The next line contains a single integer n, that is the number of intervals in which children were feeding squirrels (0 ≤ n ≤ 10 5) . The next n lines describe those intervals. Each description consists of three integers: type i t i d i, meaning who was feeding (1 for Alice and 2 for Bob), at what moment the feeding started and how much time it lasted, respectively (0 ≤ t i, d i ≤ T; t i + d i ≤ T) .
It is guaranteed that for one kid any two intervals intersect in no more than one point. The intervals are given in order of non-decreasing t i.
Output
Output the number of “meetings” of Alice and Bob.
Example
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll l,t,va,vb,m,f,x,y;
cin>>l>>t>>va>>vb;
ll ta,tb;
ta=tb=t;
scanf("%lld",&m);
while(m--)
{
cin>>f>>x>>y;
if(f==1) ta-=y;
if(f==2) tb-=y;
}
ll ans = (va*ta+vb*tb)/l;
printf("%lld\n",ans);
return 0;
}
input | output |
---|---|
10 10 2 1 3 1 1 1 1 2 2 2 2 1
|