提出 #1018258


ソースコード 拡げる

// think twice code once
// Start:
// End  :
#include <bits/stdc++.h>
using namespace std;

#define rep(i, x, y) for(int i = (x), _ = (y); i <= _; ++ i)
#define per(i, x, y) for(int i = (x), _ = (y); i >= _; -- i)
#define dprintf(...) fprintf(stderr, __VA_ARGS__)
#define disp(x) cout << #x << " = " << x << "; "

typedef long long LL;

template <class T> bool chkmin(T& a, T b) { return a > b ? a = b, true : false; }
template <class T> bool chkmax(T& a, T b) { return a < b ? a = b, true : false; }

template <class T> void read(T& a) {
	char c = getchar(); T f = 1; a = 0;
	for(; !isdigit(c); c = getchar()) if(c == '-') f = -1;
	for(; isdigit(c); c = getchar()) a = a * 10 + c - '0';
	a *= f;
}

template <class T> void write(T a) {
	static int stk[60]; 
	int tp = 0;
	if(a < 0) putchar('-'), a = -a;
	do {
		stk[++ tp] = a % 10;
		a /= 10;
	}while(a);
	
	while(tp) putchar(stk[tp--] + '0');
}

const int maxN = 1e5 + 5;

char s[maxN];
string lala[4];
bool f[maxN];
int N;

bool check(int pos, string haha) {
	rep(i, 0, haha.size() - 1) if(s[i + pos] != haha[i]) return 0;
	return 1;
} 

int main() {
#ifdef Leeson
	freopen("A.in", "r", stdin);
	freopen("A.out", "w", stdout);
#endif

	lala[0] = "dream";
	lala[1] = "dreamer";
	lala[2] = "erase";
	lala[3] = "eraser";

	scanf("%s", s + 1);
	N = strlen(s + 1);

	f[0] = 1;
	rep(i, 1, N) {
		if(i - 5 >= 0 && f[i - 5]) {
			if(check(i - 4, lala[0]) || check(i - 4, lala[2]))
				f[i] = 1;
		} 
		if(i - 6 >= 0 && f[i - 6]) {
			if(check(i - 5, lala[3]))
				f[i] = 1;
		}
		if(i - 7 >= 0 && f[i - 7]) {
			if(check(i - 6, lala[1]))
				f[i] = 1;
		}
	}

	if(f[N]) puts("YES");
	else puts("NO");

	return 0;
}

提出情報

提出日時
問題 C - 白昼夢
ユーザ leeson
言語 C++14 (GCC 5.4.1)
得点 300
コード長 1743 Byte
結果 AC
実行時間 10 ms
メモリ 384 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:59:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", s + 1);
                    ^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 19
セット名 テストケース
Sample subtask0_0.txt, subtask0_1.txt, subtask0_2.txt
All subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt
ケース名 結果 実行時間 メモリ
subtask0_0.txt AC 2 ms 256 KiB
subtask0_1.txt AC 3 ms 256 KiB
subtask0_2.txt AC 2 ms 256 KiB
subtask1_0.txt AC 5 ms 384 KiB
subtask1_1.txt AC 5 ms 384 KiB
subtask1_10.txt AC 10 ms 384 KiB
subtask1_11.txt AC 10 ms 384 KiB
subtask1_12.txt AC 10 ms 384 KiB
subtask1_13.txt AC 10 ms 384 KiB
subtask1_14.txt AC 7 ms 384 KiB
subtask1_15.txt AC 5 ms 384 KiB
subtask1_2.txt AC 9 ms 384 KiB
subtask1_3.txt AC 10 ms 384 KiB
subtask1_4.txt AC 4 ms 384 KiB
subtask1_5.txt AC 10 ms 384 KiB
subtask1_6.txt AC 4 ms 384 KiB
subtask1_7.txt AC 4 ms 384 KiB
subtask1_8.txt AC 10 ms 384 KiB
subtask1_9.txt AC 10 ms 384 KiB