#include < vector >
using namespace std;
class CircularLine ... {
public:
int longestTravel(vector<int> t)
...{
int len=t.size();
int longest=0;
for (int i=0;i!=len-1;++i)
for (int j=i+1;j!=len;++j)...{
int temp=0,min=0;
for (int k=i;k!=j;++k)
min+=t[k];
for (int k=j;k%len!=i;++k)
temp+=t[k%len];
if (temp<min) min=temp;
if (min>longest) longest=min;
}
return longest;
}
} ;
Problem Statement | |||||||||||||
There's a circular subway line that contains n stations numbered 0 through n-1. The time to travel between stations 0 and 1 is t[0], the time to travel between stations 1 and 2 is t[1], ..., the time to travel between stations n-1 and 0 is t[n-1]. You can travel between stations in either direction, so there are always two ways to get from one station to another without visiting the same station more than once. For example, if there are 4 stations, the two ways of getting from station 1 to station 3 are 1-2-3 and 1-0-3. The total travel time in the first case is t[1] + t[2], and in the second case, it is t[0] + t[3]. When a person needs to get from one station to another, she always chooses the faster of the two ways. You are given a vector <int> t. Find two stations such that the fastest travel time between them is the maximal possible. Return this time. | |||||||||||||
Definition | |||||||||||||
| |||||||||||||
Constraints | |||||||||||||
- | t will contain between 3 and 50 elements, inclusive. | ||||||||||||
- | Each element of t will be between 1 and 1000, inclusive. | ||||||||||||
Examples | |||||||||||||
0) | |||||||||||||
| |||||||||||||
1) | |||||||||||||
| |||||||||||||
2) | |||||||||||||
| |||||||||||||
3) | |||||||||||||
| |||||||||||||
4) | |||||||||||||
|
This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.