標籤:acm uva
UVA - 10714
Ants
| Time Limit: 3000MS |
|
Memory Limit: Unknown |
|
64bit IO Format: %lld & %llu |
Submit Status
Description
Problem B: AntsAn army of ants walk on a horizontal pole of length
l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in opposite directions. We know the original positions of ants on the pole, unfortunately, we do not know the directions in which the ants are walking. Your task is to compute the earliest and the latest possible times needed for all ants to fall off the pole.
The first line of input contains one integer giving the number of cases that follow. The data for each case start with two integer numbers: the length of the pole (in cm) and n, the number of ants residing on the pole. These two numbers are followed by n integers giving the position of each ant on the pole as the distance measured from the left end of the pole, in no particular order. All input integers are not bigger than 1000000 and they are separated by whitespace.
For each case of input, output two numbers separated by a single space. The first number is the earliest possible time when all ants fall off the pole (if the directions of their walks are chosen appropriately) and the second number is the latest possible such time.
Sample input
210 32 6 7214 711 12 7 13 176 23 191
Output for sample input
4 838 207
Piotr Rudnicki
Source
Root :: Competitive Programming 3: The New Lower Bound of Programming Contests (Steven & Felix Halim) :: Problem Solving Paradigms :: Greedy :: Non Classical, Usually Harder
Root :: AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 4. Algorithm Design
Root :: Competitive Programming 2: This increases the lower bound of Programming Contests. Again (Steven & Felix Halim) :: Problem Solving Paradigms :: Greedy - Standard
Root :: Prominent Problemsetters :: Piotr Rudnicki
Submit Status
思路:只需要遍曆所有螞蟻,把每個螞蟻走出木杆的最長時間,最短時間分別求出來,取其中的最大值,就是題目所問的所有螞蟻離開木杆的最短時間和最長時間
AC代碼:
#include <cstdio>#include <cstring>#include <algorithm>#define INF 0x3fffffffusing namespace std;int main() {int T;scanf("%d", &T);while(T--) {int len, n, MA = 0, MI = 0;scanf("%d %d", &len, &n);for(int i = 0; i < n; i++) {int t;scanf("%d", &t);int ma = len - t;int mi = len - ma;if(ma < mi) swap(ma, mi);MA = max(MA, ma);MI = max(MI, mi);}printf("%d %d\n", MI, MA);}return 0;}
UVA - 10714 - Ants