Pagini recente » Cod sursa (job #1434180) | Cod sursa (job #3210765) | Cod sursa (job #565435) | Cod sursa (job #618660) | Cod sursa (job #3268577)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static class MyScanner implements Closeable {
BufferedReader br;
StringTokenizer st;
public MyScanner(String file) throws FileNotFoundException {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)), 1 << 14);
}
String next() {
while (st == null || !st.hasMoreElements()) {
try {
st = new StringTokenizer(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() {
return Integer.parseInt(next());
}
long nextLong() {
return Long.parseLong(next());
}
double nextDouble() {
return Double.parseDouble(next());
}
String nextLine(){
String str = "";
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
public void close() throws IOException {
br.close();
}
}
public static void main(String[] args) throws IOException {
try(MyScanner scanner = new MyScanner("secv2.in");
PrintWriter pw = new PrintWriter(new FileOutputStream("secv2.out"))) {
int N = scanner.nextInt();
int K = scanner.nextInt();
int[] sum = new int[N+1];
for (int i = 1; i <= N; i++) {
sum[i] = sum[i-1] + scanner.nextInt();
}
int min = sum[0];
int idx = 1;
int start = 1;
int end = 1;
int maxSum = sum[0];
for (int i = K; i <= N; i++) {
if (sum[i] - min > maxSum) {
maxSum = sum[i] - min;
end = i;
start = idx + 1;
}
if (min > sum[i-K+1]) {
min = sum[i-K+1];
idx = i-K+1;
}
}
pw.print(start + " " + end + " " + maxSum + "\n");
}
}
}