写这道题的时候是先在IDEA上测试的,但使用Scanner最后的4 1总是没输进去
在IDEA的结果是这样
于是便换了BufferReader试试,发现还是一样的,于是就直接提交了,在PTA上还是可以通过的(都有一组超时)
Scanner:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int dist[]=new int[n+1];
int sum[]=new int[n+1];
sum[1]=0;
for (int i=1;i<=n;i++){
int d= scanner.nextInt();
dist[i]=d;
}
for (int i=2;i<=n;i++){
sum[i]=sum[i-1]+dist[i-1];
}
int circle=sum[n]+dist[n];
int m= scanner.nextInt();
for (int i=0;i<m;i++){
int start=scanner.nextInt();
int end= scanner.nextInt();
int low=Math.min(start,end);
int high=Math.max(start,end);
System.out.println(Math.min(sum[high]-sum[low],circle-(sum[high]-sum[low])));
}
}
}
BufferedReader:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] first = reader.readLine().split(" ");
int n = Integer.parseInt(first[0]);
int[] dis = new int[n + 1];
int[] sum = new int[n + 1];
int circle = 0;
for (int i = 1; i <= n; i++) {
dis[i] = Integer.parseInt(first[i]);
sum[i] = sum[i-1]+dis[i];
circle += dis[i];
}
int m = Integer.parseInt(reader.readLine());
for (int i = 0; i < m; i++) {
String[] line = reader.readLine().split(" ");
int start = Integer.parseInt(line[0]);
int end = Integer.parseInt(line[1]);
int low=Math.min(start,end);
int high=Math.max(start,end);
System.out.println(Math.min(sum[high - 1] - sum[low - 1], circle-(sum[high - 1] - sum[low - 1])));
}
}
}
BufferedReader稍快一些