Submission #3492330


Source Code Expand

#include <bits/stdc++.h>

#define For(i, l, r) for(register int i = (l), i##end = (int)(r); i <= i##end; ++i)
#define Fordown(i, r, l) for(register int i = (r), i##end = (int)(l); i >= i##end; --i)
#define Set(a, v) memset(a, v, sizeof(a))
#define Cpy(a, b) memcpy(a, b, sizeof(a))
#define debug(x) cout << #x << ": " << (x) << endl
#define DEBUG(...) fprintf(stderr, __VA_ARGS__)

using namespace std;

template<typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; }
template<typename T> inline bool chkmax(T &a, T b) { return b > a ? a = b, 1 : 0; }

inline int read() {
    int x(0), sgn(1); char ch(getchar());
    for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;
    for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);
    return x * sgn;
}

void File() {
#ifdef zjp_shadow
	freopen ("F.in", "r", stdin);
	freopen ("F.out", "w", stdout);
#endif
}

const int N = 5e5 + 1e3;

char str[N]; int fail[N], len;

void Get_Fail(char *str, bool *Pass) {
	For (i, 2, len) {
		static int j;
		for (j = fail[i - 1]; j && str[j + 1] != str[i]; j = fail[j]);
		fail[i] = j + (str[j + 1] == str[i]);
	}
	For (i, 1, len)
		if (!fail[i] || i % (i - fail[i])) Pass[i] = true;
}

bool f[N], g[N];

int main () {

	scanf ("%s", str + 1);

	len = strlen(str + 1);
	Get_Fail(str, f);
	reverse(str + 1, str + len + 1);
	Get_Fail(str, g);
	reverse(g + 1, g + len + 1);

	if (f[len])
		return puts("1\n1"), 0;

	int ans = 0;
	For (i, 1, len - 1)
		if (f[i] && g[i + 1]) ++ ans;
	if (ans) printf ("2\n%d\n", ans);
	else printf ("%d\n1", len);

	return 0;

}

Submission Info

Submission Time
Task F - Best Representation
User zjp_shadow
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1646 Byte
Status AC
Exec Time 11 ms
Memory 3712 KB

Compile Error

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

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 400 / 400 500 / 500
Status
AC × 3
AC × 36
AC × 65
Set Name Test Cases
Sample example_01.txt, example_02.txt, example_03.txt
Subtask1 example_01.txt, example_02.txt, example_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt
All example_01.txt, example_02.txt, example_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt
Case Name Status Exec Time Memory
example_01.txt AC 1 ms 256 KB
example_02.txt AC 1 ms 256 KB
example_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB
subtask1_23.txt AC 1 ms 256 KB
subtask1_24.txt AC 1 ms 256 KB
subtask1_25.txt AC 1 ms 256 KB
subtask1_26.txt AC 1 ms 256 KB
subtask1_27.txt AC 1 ms 256 KB
subtask1_28.txt AC 1 ms 256 KB
subtask1_29.txt AC 1 ms 256 KB
subtask1_30.txt AC 1 ms 256 KB
subtask1_31.txt AC 1 ms 256 KB
subtask1_32.txt AC 1 ms 256 KB
subtask1_33.txt AC 1 ms 256 KB
subtask2_01.txt AC 9 ms 2944 KB
subtask2_02.txt AC 10 ms 3200 KB
subtask2_03.txt AC 9 ms 3200 KB
subtask2_04.txt AC 9 ms 3712 KB
subtask2_05.txt AC 10 ms 3200 KB
subtask2_06.txt AC 9 ms 3200 KB
subtask2_07.txt AC 10 ms 3712 KB
subtask2_08.txt AC 10 ms 3712 KB
subtask2_09.txt AC 10 ms 3712 KB
subtask2_10.txt AC 10 ms 3712 KB
subtask2_11.txt AC 10 ms 3712 KB
subtask2_12.txt AC 10 ms 3712 KB
subtask2_13.txt AC 10 ms 3712 KB
subtask2_14.txt AC 10 ms 3712 KB
subtask2_15.txt AC 10 ms 3712 KB
subtask2_16.txt AC 10 ms 3712 KB
subtask2_17.txt AC 9 ms 3712 KB
subtask2_18.txt AC 10 ms 3712 KB
subtask2_19.txt AC 10 ms 3584 KB
subtask2_20.txt AC 11 ms 3712 KB
subtask2_21.txt AC 10 ms 3456 KB
subtask2_22.txt AC 10 ms 3712 KB
subtask2_23.txt AC 10 ms 3712 KB
subtask2_24.txt AC 9 ms 3200 KB
subtask2_25.txt AC 10 ms 3328 KB
subtask2_26.txt AC 10 ms 3456 KB
subtask2_27.txt AC 9 ms 3072 KB
subtask2_28.txt AC 6 ms 2048 KB
subtask2_29.txt AC 8 ms 2944 KB