Task: | Buy Low, Sell High |
Sender: | HIIT AND RUN |
Submission time: | 2018-05-26 11:30:04 +0300 |
Language: | Java |
Status: | READY |
Result: | TIME LIMIT EXCEEDED |
test | verdict | time | |
---|---|---|---|
#1 | TIME LIMIT EXCEEDED | -- | details |
#2 | TIME LIMIT EXCEEDED | -- | details |
#3 | TIME LIMIT EXCEEDED | -- | details |
#4 | TIME LIMIT EXCEEDED | -- | details |
#5 | TIME LIMIT EXCEEDED | -- | details |
#6 | ACCEPTED | 0.23 s | details |
#7 | ACCEPTED | 0.20 s | details |
#8 | ACCEPTED | 0.26 s | details |
#9 | TIME LIMIT EXCEEDED | -- | details |
Code
import java.util.Scanner;public class A {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();s.nextLine();int[] p = new int[n];for (int i=0; i<n; i++) {p[i] = s.nextInt();}int minStart = p[0];int maxProfitAnywhereBetween = 0;int[] l = new int[n];for (int i=0; i<n; i++) {minStart = Math.min(minStart, p[i]);int profitIfSellHere = p[i] - minStart;maxProfitAnywhereBetween = Math.max(maxProfitAnywhereBetween, profitIfSellHere);l[i] = maxProfitAnywhereBetween;}int maxEnd = p[n-1];maxProfitAnywhereBetween = 0;int[] r = new int[n];for (int i=n-1; i>=0; i--) {maxEnd = Math.max(maxEnd, p[i]);int profitIfBuyHere = maxEnd - p[i];maxProfitAnywhereBetween = Math.max(maxProfitAnywhereBetween, profitIfBuyHere);r[i] = maxProfitAnywhereBetween;}long ans = 0;for (int i=0; i<n; i++) {ans = Math.max(ans, (long)l[i] + (long)r[i]);}System.out.println(ans);s.close();}}
Test details
Test 1
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
499999 |
user output |
---|
(empty) |
Test 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 500000 499999 499998 499997 49... |
correct output |
---|
0 |
user output |
---|
(empty) |
Test 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 617752857 533265574 365848360 ... |
correct output |
---|
1999980408 |
user output |
---|
(empty) |
Test 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 209620375 316066031 756114325 ... |
correct output |
---|
1999992655 |
user output |
---|
(empty) |
Test 6
Verdict: ACCEPTED
input |
---|
1 1 |
correct output |
---|
0 |
user output |
---|
0 |
Test 7
Verdict: ACCEPTED
input |
---|
2 1 1 |
correct output |
---|
0 |
user output |
---|
0 |
Test 8
Verdict: ACCEPTED
input |
---|
2 2 1 |
correct output |
---|
0 |
user output |
---|
0 |
Test 9
Verdict: TIME LIMIT EXCEEDED
input |
---|
500000 1 1000000000 2 2 2 2 2 2 2 2 2... |
correct output |
---|
1999999998 |
user output |
---|
(empty) |