Pagini recente » Cod sursa (job #482547) | Cod sursa (job #2870467) | Cod sursa (job #1095002) | Cod sursa (job #3203111) | Cod sursa (job #2590266)
package com.beniamin.savu.datorii;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
/**
* Hello world!
*
*/
public class Main {
/**
* Code to detect when the father iterogates Gigel.
*/
private static final int FATHER_INTEROGATION_OPERATION = 1;
public static void main(String[] args) throws IOException {
Scanner reader = new Scanner(new FileInputStream("datorii.in"));
// Read "n" and "m"
int n = reader.nextInt();
int m = reader.nextInt();
// Read A1, A2, .... An
int[] customersDebts = new int[n];
int totalCustomerDebt = 0;
for (int i = 0; i<n; i++) {
customersDebts[i] = reader.nextInt();
totalCustomerDebt += customersDebts[i];
}
StringBuilder result = new StringBuilder();
for (int i = 0; i<m; i++) {
int query = reader.nextInt();
if(query == FATHER_INTEROGATION_OPERATION) {
int dayStart = reader.nextInt();
int dayEnd = reader.nextInt();
if(dayEnd - dayStart + 1 == m) {
result.append(totalCustomerDebt).append("\n");
} else if (dayEnd - dayStart + 1 < m/2) {
int totalDebt = 0;
for(int j = dayStart - 1; j<dayEnd; j++) {
totalDebt += customersDebts[j];
}
result.append(totalDebt).append("\n");
} else {
int totalDebt = 0;
for(int j = 0; j<dayStart-1; j++) {
totalDebt += customersDebts[j];
}
if(dayEnd != m) {
for(int j = dayEnd; j<m; j++) {
totalDebt += customersDebts[j];
}
}
result.append(totalCustomerDebt - totalDebt).append("\n");
}
} else {
int day = reader.nextInt() - 1;
int amountPaid = reader.nextInt();
customersDebts[day] -= amountPaid;
totalCustomerDebt -= amountPaid;
}
}
reader.close();
PrintWriter writer = new PrintWriter("datorii.out");
writer.write(result.toString() + "\n");
writer.close();
System.exit(0);
}
}