Title Link: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2245
Time limit:500 MS |
Memory limit:50000 K |
Total submit:129(users) |
Total accepted:66(users) |
Rating: |
Special Judge: No |
|
Description |
What you see. Zoidtrip is a casual to small game ... The player is required to manipulate a triangular cell that keeps moving forward at a 45-degree speed, and keeps avoiding horizontal obstructions, changing the direction of travel each time the screen is clicked. [Ability to transform oblique left (right) 45° to oblique right (left) 45°] Today, there are N-layer obstructions. Layer I obstructions can be worn from the range of the horizontal axis l[i]~r[i] (including l[i] and R[i]), and the distance between the layer I obstacle and the i-1 layer obstacle is d[i]. May I ask if it is possible to move up to the first layer of the condition in an infinitely changing direction? We stipulate that the player is born on the No. 0 floor, where the horizontal axis is 0. You can change direction at random real time. |
Input |
Multiple sets of test data. The first behavior of each set of test data is two positive integers n and v. Next n lines, 3 integers per line l[i], R[i], d[i]. (N <= 2000000. 0 <= all data < 2^31) |
Output |
For each set of data. The output line, including an integer, represents the maximum number of layers to advance to. |
Sample Input |
3 7 1 3 1 4 10 5 8 10 1 4 1 1 1 1 2 5 10 1 1 1 3 5 2 |
Sample Output |
2 4 |
Hint |
"The distance between the layer I obstacle and the barrier of the i-1 layer is d[i]" So d[1] is the distance between the first and 0th floors. Example 1 explains for example the following: We are able to move from the birth position to the right down to the first layer with coordinates 1. Next, you can continue to move right down to the second-level coordinate of 6.
However, it is not possible to move between 8~10 on the third floor.
Example 2 illustrates such as the following: (0,0), (2,2), (3,1), (4,3) So it reaches the fourth floor. |
Source |
The fifth annual ACM Program Design Contest of Harbin Polytechnic University |
Ps:
Find the triangular cell at the left and right distance from each layer that can be reached and meet the obstacles.
The code is as follows:
#include <cstdio> #include <iostream> #include <algorithm>using namespace std; #define LL Long long# Define MAXN 2000047LL L[MAXN], R[MAXN], D[maxn];int main () { LL n, v; while (scanf ("%lld%lld", &n,&v)!=eof) { LL L = 0,r = 0; int ans = 0; for (int i=0; i<n; i++) { scanf ("%lld%lld%lld", &l[i],&r[i],&d[i]); } for (int i = 0; i < n; i++) { if (L[i] > R[i]) { LL t = r[i]; R[i] = L[i]; L[i] = t; } L-=d[i]; R+=d[i]; L = max (l[i],l); R = min (r[i],r); if (L > R) {break ; } ans++; } if (v = = 0) ans = 0; printf ("%d\n", ans); } return 0;}
Hoj 2245 planktonic Triangular cell (mathematics AH)