[PAT] 1046 Shortest Distance (20 分)Java
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[PAT] 1046 Shortest Distance (20 分)Java,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2288字,纯文字阅读大概需要4分钟。
内容图文
![[PAT] 1046 Shortest Distance (20 分)Java](/upload/InfoBanner/zyjiaocheng/838/5b7e2b7d30ff4b46b996d82236267a82.jpg)
The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.
Input Specification:
Each input file contains one test case. For each case, the first line contains an integer N (in [3,10?5??]), followed by N integer distances D?1?? D?2?? ? D?N??, where D?i?? is the distance between the i-th and the (i+1)-st exits, and D?N?? is between the N-th and the 1st exits. All the numbers in a line are separated by a space. The second line gives a positive integer M (≤10?4??), with M lines follow, each contains a pair of exit numbers, provided that the exits are numbered from 1 to N. It is guaranteed that the total round trip distance is no more than 10?7??.
Output Specification:
For each test case, print your results in M lines, each contains the shortest distance between the corresponding given pair of exits.
Sample Input:
5 1 2 4 14 9
3
1 3
2 5
4 1
Sample Output:
3
10
7
1 package pattest; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 7 /** 8 * @Auther: Xingzheng Wang 9 * @Date: 2019/2/23 11:17 10 * @Description: pattest 11 * @Version: 1.0 12 */ 13 public class PAT1046 { 14 public static void main(String[] args) throws IOException { 15 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 16 String[] first = reader.readLine().split(" "); 17 18 int n = Integer.parseInt(first[0]); 19 int[] dis = new int[n + 1]; 20 int[] arr = new int[n + 1]; 21 int sum = 0; 22 23 for (int i = 1; i <= n; i++) { 24 dis[i] = Integer.parseInt(first[i]); 25 sum += dis[i]; 26 arr[i] = sum; 27 } 28 int m = Integer.parseInt(reader.readLine()); 29 for (int i = 0; i < m; i++) { 30 String[] line = reader.readLine().split(" "); 31 int s = Integer.parseInt(line[0]); 32 int e = Integer.parseInt(line[1]); 33 if (s > e) { 34 int temp = s; 35 s = e; 36 e = temp; 37 } 38 int pre1 = arr[e - 1] - arr[s - 1]; 39 int pre2 = sum - pre1; 40 System.out.println(Math.min(pre1,pre2)); 41 } 42 } 43 }
内容总结
以上是互联网集市为您收集整理的[PAT] 1046 Shortest Distance (20 分)Java全部内容,希望文章能够帮你解决[PAT] 1046 Shortest Distance (20 分)Java所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。