import java.util.Scanner;
public class sia {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
int m;
int[] dayCutHeight;
int[] dayThatGrassIsCutted;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt();
dayCutHeight = new int[m];
dayThatGrassIsCutted = new int[m];
int[] dayHayState = new int[n];
int growthRatio[] = new int[n];
for(int i = 0; i < n; i++){
growthRatio[i] = scanner.nextInt();
dayHayState[i] = growthRatio[i];
}
for(int i = 0; i < m; i++){
dayThatGrassIsCutted[i] = scanner.nextInt();
dayCutHeight[i] = scanner.nextInt();
}
// proceed day cycle
int dailyProfit = 0;
int dayPointer = 0;
try {
for (int day = 1; day <= dayThatGrassIsCutted[dayThatGrassIsCutted.length - 1]; day++) {
if (day == dayThatGrassIsCutted[dayPointer]) { // cut time
for (int tile = 0; tile < n; tile++) {
if (dayHayState[tile] - dayCutHeight[dayPointer] > 0) {
dailyProfit += (dayHayState[tile] - dayCutHeight[dayPointer]);
} else {
dailyProfit = 0;
}
if (dayHayState[tile] >= dayCutHeight[dayPointer]) {
dayHayState[tile] = dayCutHeight[dayPointer];
} else {
dayHayState[tile] = dayHayState[tile];
}
}
System.out.println(dailyProfit);
dailyProfit = 0;
dayPointer++;
}
for (int i = 0; i < n; i++) { // daily growth
dayHayState[i] += growthRatio[i];
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import java.util.Scanner; public class sia { public static void main(String[] args) { // TODO Auto-generated method stub int n; int m; int[] dayCutHeight; int[] dayThatGrassIsCutted; Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); m = scanner.nextInt(); dayCutHeight = new int[m]; dayThatGrassIsCutted = new int[m]; int[] dayHayState = new int[n]; int growthRatio[] = new int[n]; for(int i = 0; i < n; i++){ growthRatio[i] = scanner.nextInt(); dayHayState[i] = growthRatio[i]; } for(int i = 0; i < m; i++){ dayThatGrassIsCutted[i] = scanner.nextInt(); dayCutHeight[i] = scanner.nextInt(); } // proceed day cycle int dailyProfit = 0; int dayPointer = 0; try { for (int day = 1; day <= dayThatGrassIsCutted[dayThatGrassIsCutted.length - 1]; day++) { if (day == dayThatGrassIsCutted[dayPointer]) { // cut time for (int tile = 0; tile < n; tile++) { if (dayHayState[tile] - dayCutHeight[dayPointer] > 0) { dailyProfit += (dayHayState[tile] - dayCutHeight[dayPointer]); } else { dailyProfit = 0; } if (dayHayState[tile] >= dayCutHeight[dayPointer]) { dayHayState[tile] = dayCutHeight[dayPointer]; } else { dayHayState[tile] = dayHayState[tile]; } } System.out.println(dailyProfit); dailyProfit = 0; dayPointer++; } for (int i = 0; i < n; i++) { // daily growth dayHayState[i] += growthRatio[i]; } } } catch (Exception e) { // TODO: handle exception } } } |
English