結果
| 問題 |
No.664 超能力者Aと株価予測
|
| コンテスト | |
| ユーザー |
sekiya9311
|
| 提出日時 | 2018-03-10 00:46:17 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 232 ms / 4,000 ms |
| コード長 | 2,159 bytes |
| コンパイル時間 | 2,285 ms |
| コンパイル使用メモリ | 80,752 KB |
| 実行使用メモリ | 54,772 KB |
| 最終ジャッジ日時 | 2024-10-11 00:06:26 |
| 合計ジャッジ時間 | 5,434 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 |
ソースコード
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.OptionalLong;
import java.util.Arrays;
import java.util.stream.LongStream;
import java.util.stream.Stream;
import java.util.Scanner;
import java.util.function.Function;
/**
* Built using CHelper plug-in
* Actual solution is at the top
*/
public class Main {
public static void main(String[] args) {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
Scanner in = new Scanner(inputStream);
PrintWriter out = new PrintWriter(outputStream);
No664 solver = new No664();
solver.solve(1, in, out);
out.close();
}
static class No664 {
public void solve(int testNumber, Scanner in, PrintWriter out) {
int N = in.nextInt() + 1;
int M = in.nextInt();
long K = in.nextInt();
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = in.nextInt();
}
final long minf = (long) -1e18;
long[][] dp = new long[N + 1][M + 1];
for (int i = 0; i < dp.length; i++) {
Arrays.fill(dp[i], -1);
}
dp[0][0] = K;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
for (int k = 0; k < M; k++) {
dp[j][k] = Math.max(dp[j][k], dp[i][k]);
long foo = dp[i][k];
{
long bar = foo / A[i];
foo -= bar * A[i];
foo += bar * A[j];
}
dp[j][k + 1] = Math.max(dp[j][k + 1], foo);
}
}
}
long ans = Arrays.stream(dp).flatMapToLong(new Function<long[], LongStream>() {
public LongStream apply(long[] longs) {
return Arrays.stream(longs);
}
}).max().getAsLong();
out.println(ans);
}
}
}
sekiya9311