| Task: | Buy Low, Sell High |
| Sender: | HIIT AND RUN |
| Submission time: | 2018-05-26 11:31:56 +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.22 s | details |
| #7 | ACCEPTED | 0.23 s | details |
| #8 | ACCEPTED | 0.23 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();
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) |
