package Hashing;
import java.util.*;
public class ciscoSession43 {
public static void main
(String[] args
) { long[][] request = { { 1, 8 }, { 4, 9 }, { 6, 7 } };
long rate = 2;
long maxPacket = 10;
long i = 0;
long n = request.length;
HashMap
<Long, Long
> hashMap
= new HashMap
<>(); while (i < n) {
hashMap.put(request[(int) i][0], request[(int) i][1]);
i++;
}
i = 0;
long current = 0;
long dropped = 0;
while (i < n) {
long t = request[(int) i][0];
current += hashMap.get(t);
if (current > maxPacket) {
long drop = current - maxPacket;
dropped += drop;
current = maxPacket;
}
if (i <= n - 2) {
long t1 = request[(int) i + 1][0];
long diff = t1 - t;
current -= (rate * diff);
}
if (current < 0) {
current = 0;
}
i++;
}
}
}
cGFja2FnZSBIYXNoaW5nOwoKaW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIGNpc2NvU2Vzc2lvbjQzIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBsb25nW11bXSByZXF1ZXN0ID0geyB7IDEsIDggfSwgeyA0LCA5IH0sIHsgNiwgNyB9IH07CiAgICAgICAgbG9uZyByYXRlID0gMjsKICAgICAgICBsb25nIG1heFBhY2tldCA9IDEwOwogICAgICAgIGxvbmcgaSA9IDA7CiAgICAgICAgbG9uZyBuID0gcmVxdWVzdC5sZW5ndGg7CiAgICAgICAgSGFzaE1hcDxMb25nLCBMb25nPiBoYXNoTWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIHdoaWxlIChpIDwgbikgewogICAgICAgICAgICBoYXNoTWFwLnB1dChyZXF1ZXN0WyhpbnQpIGldWzBdLCByZXF1ZXN0WyhpbnQpIGldWzFdKTsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBpID0gMDsKICAgICAgICBsb25nIGN1cnJlbnQgPSAwOwogICAgICAgIGxvbmcgZHJvcHBlZCA9IDA7CiAgICAgICAgd2hpbGUgKGkgPCBuKSB7CiAgICAgICAgICAgIGxvbmcgdCA9IHJlcXVlc3RbKGludCkgaV1bMF07CiAgICAgICAgICAgIGN1cnJlbnQgKz0gaGFzaE1hcC5nZXQodCk7CiAgICAgICAgICAgIGlmIChjdXJyZW50ID4gbWF4UGFja2V0KSB7CiAgICAgICAgICAgICAgICBsb25nIGRyb3AgPSBjdXJyZW50IC0gbWF4UGFja2V0OwogICAgICAgICAgICAgICAgZHJvcHBlZCArPSBkcm9wOwogICAgICAgICAgICAgICAgY3VycmVudCA9IG1heFBhY2tldDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaSA8PSBuIC0gMikgewogICAgICAgICAgICAgICAgbG9uZyB0MSA9IHJlcXVlc3RbKGludCkgaSArIDFdWzBdOwogICAgICAgICAgICAgICAgbG9uZyBkaWZmID0gdDEgLSB0OwogICAgICAgICAgICAgICAgY3VycmVudCAtPSAocmF0ZSAqIGRpZmYpOwoKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY3VycmVudCA8IDApIHsKICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRyb3BwZWQpOwogICAgfQp9Cg==