슬라이딩 윈도우
for (int i = X; i < N - X; i++) {
for (int j = i; j < i + X; j++) sum += arr.get(j);
int sum = 0;
if (sum == maxSum) {
maxCount++;
}
else if (maxSum < sum) {
maxSum = sum;
maxCount = 1;
}
}
for (int i = X; i < N; i++) {
sum += arr.get(i) - arr.get(i - X);
if (sum == maxSum) {
maxCount++;
}
else if (maxSum < sum) {
maxSum = sum;
maxCount = 1;
}
}
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
// 지방의 수
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < N; i++) arr.add(Integer.parseInt(st.nextToken()));
int sum = 0;
int maxCount = 1;
for (int i = 0; i < X; i++) sum += arr.get(i);
int maxSum = sum;
for (int i = X; i < N; i++) {
sum += arr.get(i) - arr.get(i - X);
if (sum == maxSum) {
maxCount++;
}
else if (maxSum < sum) {
maxSum = sum;
maxCount = 1;
}
}
if (maxSum == 0) bw.write("SAD\n");
else bw.write(maxSum + "\n" + maxCount);
bw.flush();
bw.close();
br.close();
}
}