Skip to content

Instantly share code, notes, and snippets.

@mbuff24
Created December 30, 2015 15:33
Show Gist options
  • Save mbuff24/5d24ffcf06c7ba7f82ae to your computer and use it in GitHub Desktop.
Save mbuff24/5d24ffcf06c7ba7f82ae to your computer and use it in GitHub Desktop.
import java.io.*;
import java.util.*;
public class Solution {
static class Operation {
public int a;
public int b;
public int k;
public Operation(int a, int b, int k) {
this.a = a;
this.b = b;
this.k = k;
}
public String toString() {
return "[" + a + ", " + b + ", " + k + "]";
}
}
public static long crush(int n, int m, Operation[] ops) {
long[] crushState = new long[n+1];
for(int i=0; i < crushState.length; i++) {
crushState[i] = 0;
}
for(int i=0; i < m; i++) {
crushState[ops[i].a-1] += ops[i].k;
crushState[ops[i].b] -= ops[i].k;
}
long max = crushState[0];
long sum = max;
for(int i=1; i < n; i++) {
sum += crushState[i];
if(sum > max) {
max = sum;
}
}
return max;
}
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
/* https://www.hackerrank.com/contests/w4/challenges/crush */
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
Operation[] ops = new Operation[m];
for(int i=0; i < m; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
int k = sc.nextInt();
ops[i] = new Operation(a, b, k);
}
long max = crush(n, m, ops);
System.out.println(max);
}
}
@sharadm20
Copy link

can someone explain the for loop

for(int i=0; i < m; i++) {

  crushState[ops[i].a-1] += ops[i].k;
  crushState[ops[i].b] -= ops[i].k;//this line preferably
  | }

@s1ac2x1
Copy link

s1ac2x1 commented Aug 16, 2017

There is no need to populate crushState with zeroes, it is the default behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment