結果
| 問題 |
No.1066 #いろいろな色 / Red and Blue and more various colors (Easy)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-05-29 22:22:54 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 469 ms / 2,000 ms |
| コード長 | 4,428 bytes |
| コンパイル時間 | 2,454 ms |
| コンパイル使用メモリ | 78,156 KB |
| 実行使用メモリ | 57,724 KB |
| 最終ジャッジ日時 | 2024-11-06 05:36:27 |
| 合計ジャッジ時間 | 8,483 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 |
ソースコード
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedOutputStream;
import java.io.UncheckedIOException;
import java.nio.charset.Charset;
import java.util.StringTokenizer;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.InputStream;
/**
* Built using CHelper plug-in
* Actual solution is at the top
*
* @author mikit
*/
public class Main {
public static void main(String[] args) {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
LightScanner in = new LightScanner(inputStream);
LightWriter out = new LightWriter(outputStream);
No1066RedAndBlueAndMoreVariousColorsEasy solver = new No1066RedAndBlueAndMoreVariousColorsEasy();
solver.solve(1, in, out);
out.close();
}
static class No1066RedAndBlueAndMoreVariousColorsEasy {
private static final int MOD = 998244353;
public void solve(int testNumber, LightScanner in, LightWriter out) {
int n = in.ints(), q = in.ints();
long[][] dp = new long[2][n + 1];
dp[1][0] = 1;
for (int i = 0; i < n; i++) {
int a = in.ints();
System.arraycopy(dp[1], 0, dp[0], 0, n + 1);
for (int j = 0; j <= n; j++) {
dp[1][j] *= (a - 1);
if (0 < j) dp[1][j] += dp[0][j - 1];
dp[1][j] %= MOD;
}
}
for (int i = 0; i < q; i++) out.ans(dp[1][in.ints()]).ln();
}
}
static class LightWriter implements AutoCloseable {
private final Writer out;
private boolean autoflush = false;
private boolean breaked = true;
public LightWriter(Writer out) {
this.out = out;
}
public LightWriter(OutputStream out) {
this(new OutputStreamWriter(new BufferedOutputStream(out), Charset.defaultCharset()));
}
public LightWriter print(char c) {
try {
out.write(c);
breaked = false;
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
return this;
}
public LightWriter print(String s) {
try {
out.write(s, 0, s.length());
breaked = false;
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
return this;
}
public LightWriter ans(String s) {
if (!breaked) {
print(' ');
}
return print(s);
}
public LightWriter ans(long l) {
return ans(Long.toString(l));
}
public LightWriter ln() {
print(System.lineSeparator());
breaked = true;
if (autoflush) {
try {
out.flush();
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
}
return this;
}
public void close() {
try {
out.close();
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
}
}
static class LightScanner implements AutoCloseable {
private BufferedReader reader = null;
private StringTokenizer tokenizer = null;
public LightScanner(InputStream in) {
reader = new BufferedReader(new InputStreamReader(in));
}
public String string() {
if (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
return tokenizer.nextToken();
}
public int ints() {
return Integer.parseInt(string());
}
public void close() {
try {
this.reader.close();
} catch (IOException ex) {
throw new UncheckedIOException(ex);
}
}
}
}