結果
| 問題 |
No.2402 Dirty Stairs and Shoes
|
| コンテスト | |
| ユーザー |
imo1
|
| 提出日時 | 2023-08-04 22:50:30 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 897 bytes |
| コンパイル時間 | 239 ms |
| コンパイル使用メモリ | 30,208 KB |
| 実行使用メモリ | 15,432 KB |
| 最終ジャッジ日時 | 2024-12-20 02:46:29 |
| 合計ジャッジ時間 | 55,535 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 14 TLE * 18 |
ソースコード
#include <stdio.h>
int N, K, M1, A[200001], M2, B[200001];
int ans(int n)
{
if (n == 0) {
return 1;
}
int i, j, flag1 = 1, flag2 = 1;
for (i = 1; i <= M2; i++) {
if (B[i] == n - K || B[i] == n - 1) {
return 1;
}
}
for (i = 1; i <= M1; i++) {
if (A[i] == n - K || n - K < 0) flag1 = 0;
if (A[i] == n - 1) flag2 = 0;
}
if (flag1 == 1 && flag2 == 1) return ans(n - K) + ans(n - 1);
else if (flag1 == 1) return ans(n - K);
else if (flag2 == 1) return ans(n - 1);
else return 0;
}
int main()
{
int i;
scanf("%d %d", &N, &K);
scanf("%d", &M1);
for (i = 1; i <= M1; i++) scanf("%d", &A[i]);
scanf("%d", &M2);
for (i = 1; i <= M2; i++) scanf("%d", &B[i]);
if (ans(N)) printf("Yes\n");
else printf("No\n");
return 0;
}
imo1