Submission #3409551


Source Code Expand

#if 0
cat <<EOF >mistaken-paste
#endif
// thanks for @rsk0315_h4x

#pragma GCC diagnostic ignored "-Wincompatible-pointer-types"
#define _USE_MATH_DEFINES

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>
#include <time.h>

#define BIG 2000000007
#define VERYBIG 2000000000000007LL

#define MOD 1000000007
#define FOD  998244353
typedef uint64_t ull;
typedef  int64_t sll;

#define N_MAX 1000000

#ifdef __cplusplus
#include <queue>
#include <stack>
#include <tuple>
#include <set>
#include <map>
#include <string>
#include <algorithm>
#include <functional>
#include <array>

using std::queue;
using std::priority_queue;
using std::stack;
using std::tuple;
using std::set;
using std::map;
using std::vector;
using std::greater;
using std::pair;
using std::string;

#endif

typedef struct {
	int32_t a;
	int32_t b;
} hw;

typedef struct {
	sll a;
	sll b;
} hwll;

typedef struct {
	sll a;
	sll b;
	sll c;
} hwllc;

typedef struct {
	hwll a;
	hwll b;
} linell;

ull n, m;
ull h, w;
ull k;
ull q;
sll va, vb, vc, vd, ve, vf;
ull ua, ub, uc, ud, ue, uf;
long double vra, vrb, vrc;
double vda, vdb, vdc;
char ch, dh;

ull umin (ull x, ull y) {
	return (x < y) ? x : y;
}

ull umax (ull x, ull y) {
	return (x > y) ? x : y;
}

sll smin (sll x, sll y) {
	return (x < y) ? x : y;
}

sll smax (sll x, sll y) {
	return (x > y) ? x : y;
}

ull gcd (ull x, ull y) {
	if (x < y) {
		return gcd(y, x);
	} else if (y == 0) {
		return x;
	} else {
		return gcd(y, x % y);
	}
}

ull bitpow (ull a, ull x, ull modulo) {
	ull result = 1;
	while (x) {
		if (x & 1) {
			result *= a;
			result %= modulo;
		}
		x /= 2;
		a = (a * a) % modulo;
	}
	return result;
}

ull divide (ull a, ull b, ull modulo) {
	return (a * bitpow(b, modulo - 2, modulo)) % modulo;
}

ull udiff (ull a, ull b) {
	if (a >= b) {
		return a - b;
	} else {
		return b - a;
	}
}

sll sdiff (sll a, sll b) {
	if (a >= b) {
		return a - b;
	} else {
		return b - a;
	}
}

int bitcount (ull n) {
	int result = 0;
	while (n) {
		if (n & 1) result++;
		n /= 2;
	}
	return result;
}

// double distance (sll x1, sll y1, sll x2, sll y2) {
// 	double xdist2, ydist2, origindist, dist;

// 	xdist2 = (x1 - x2) * (x1 - x2);
// 	ydist2 = (y1 - y2) * (y1 - y2);
// 	return sqrt(xdist2 + ydist2);
// }

int32_t pullcomp (const void *left, const void *right) {
	ull l = *(ull*)left;
	ull r = *(ull*)right;
	if (l < r) {
		return -1;
	}
	if (l > r) {
		return +1;
	}
	return 0;
}

int32_t prevcomp (const void *left, const void *right) {
	ull l = *(ull*)left;
	ull r = *(ull*)right;
	if (l > r) {
		return -1;
	}
	if (l < r) {
		return +1;
	}
	return 0;
}

int32_t psllcomp (const void *left, const void *right) {
	sll l = *(sll*)left;
	sll r = *(sll*)right;
	if (l < r) {
		return -1;
	}
	if (l > r) {
		return +1;
	}
	return 0;
}

int32_t pcharcomp (const void *left, const void *right) {
	char l = *(char*)left;
	char r = *(char*)right;
	if (l < r) {
		return -1;
	}
	if (l > r) {
		return +1;
	}
	return 0;
}

int32_t pdoublecomp (const void *left, const void *right) {
	double l = *(double*)left;
	double r = *(double*)right;
	if (l < r) {
		return -1;
	}
	if (l > r) {
		return +1;
	}
	return 0;
}

int32_t pstrcomp (const void *left, const void *right) {
	char* l = *(char**)left;
	char* r = *(char**)right;

	return strcmp(l, r);
}

int32_t phwllABcomp (const void *left, const void *right) {
	hwll l = *(hwll*)left;
	hwll r = *(hwll*)right;
	if (l.a < r.a) {
		return -1;
	}
	if (l.a > r.a) {
		return +1;
	}
	if (l.b < r.b) {
		return -1;
	}
	if (l.b > r.b) {
		return +1;
	}
	return 0;
}

int32_t phwllREVcomp (const void *left, const void *right) {
	hwll l = *(hwll*)left;
	hwll r = *(hwll*)right;
	if (l.b < r.b) {
		return -1;
	}
	if (l.b > r.b) {
		return +1;
	}
	if (l.a < r.a) {
		return -1;
	}
	if (l.a > r.a) {
		return +1;
	}
	return 0;
}

int32_t ptriplecomp (const void *left, const void *right) {
	hwllc l = *(hwllc*)left;
	hwllc r = *(hwllc*)right;

	if (l.a < r.a) {
		return -1;
	}
	if (l.a > r.a) {
		return +1;
	}
	if (l.b < r.b) {
		return -1;
	}
	if (l.b > r.b) {
		return +1;
	}
	if (l.c < r.c) {
		return -1;
	}
	if (l.c > r.c) {
		return +1;
	}
	return 0;
}

int32_t ptripleREVcomp (const void *left, const void *right) {
	hwllc l = *(hwllc*)left;
	hwllc r = *(hwllc*)right;

	if (l.b < r.b) {
		return -1;
	}
	if (l.b > r.b) {
		return +1;
	}
	if (l.a < r.a) {
		return -1;
	}
	if (l.a > r.a) {
		return +1;
	}
	if (l.c < r.c) {
		return -1;
	}
	if (l.c > r.c) {
		return +1;
	}
	return 0;
}

int32_t pquadcomp (const void *left, const void *right) {
	linell l = *(linell*)left;
	linell r = *(linell*)right;

	sll ac = phwllABcomp(&(l.a), &(r.a));
	if (ac) return ac;
	sll bc = phwllABcomp(&(l.b), &(r.b));
	if (bc) return bc;

	return 0;
}

bool isinrange (sll left, sll x, sll right) {
	return (left <= x && x <= right);
}

bool isinrange_soft (sll left, sll x, sll right) {
	return (left <= x && x <= right) || (left >= x && x >= right);
}

sll a[N_MAX];
// ull a[N_MAX];
// sll a[3001][3001];
sll b[N_MAX];
// sll b[3001][3001];
sll c[N_MAX];
// sll d[N_MAX];
// sll e[N_MAX];
char s[N_MAX + 1];
// char s[3010][3010];
char t[N_MAX + 1];
// char t[3010][3010];
hwll xy[N_MAX];
hwllc tup[N_MAX];
sll table[3000][3000];
// here we go

sll cmp (sll i, sll il, sll j, sll jl) {
	while (i <= il || j <= jl) {
		char c = ((i == il) ? '\0' : s[i]);
		char d = ((j == jl) ? '\0' : s[j]);
		if (c < d) return -1;
		if (c > d) return +1;

		i++;
		j++;
	}
	return 0;
}

bool func (ull a[], ull x) {
	if (x == 1) return true;

	sll i, j;
	ull b[x + 3], len = 1;
	b[0] = 0;

	for (i = 1; i < x; i++) {
		sll c = cmp(0, a[1], a[i], a[i + 1]);
		if (c > 0) return false;
		if (c < 0) continue;

		b[len++] = a[i];
	}
	b[len] = n;

	if (len == x) return true;
	return func(b, len);
}

ull solve () {
	sll i, j, ki, li;
	// ull result = 0;
	sll result = 0;
	double dresult = 0;
	// ull maybe = 0;
	sll maybe = 0;
	// ull sum = 0;
	sll sum = 0;
	sll item;
	ull *dpcell;

	n = strlen(s);
	ull init[n + 1];
	for (i = 0; i <= n; i++) init[i] = i;
	puts(func(init, n) ? "Yes" : "No");

	// printf("%lld\n", result);
	// printf("%.15lf\n", dresult);
	// puts(s);

	return 0;

	success:
	// puts("YES");
	puts("Yes");
	// printf("%llu\n", result);
	// puts("0");
	// puts("Yay!");
	return 0;

	fail:
	// puts("NO");
	// puts("No");
	// puts("0");
	puts("-1");
	// puts("-1 -1 -1");
	// puts("Impossible");
	return 1;
}

int32_t main (void) {
	int32_t i, j;
	int32_t x, y;



	// scanf("%llu%llu", &h, &w);
	// scanf("%llu", &n, &m);
	// scanf("%llu", &k, &n, &m);
	// scanf("%llu%llu", &h, &w);
	// scanf("%lld%lld", &va, &vb, &vc, &vd);
	// scanf("%llu%llu", &ua, &ub, &uc, &ud);
	// scanf("%llu", &q);
	scanf("%s", s);
	// scanf("%s", t);
	// for (i = 0; i < n; i++) {
	// 	// scanf("%lld%lld", &xy[i].a, &xy[i].b);
	// 	// scanf("%lld%lld%lld", &tup[i].a, &tup[i].b, &tup[i].c);
	// 	scanf("%lld", &a[i]);
	// 	scanf("%lld", &b[i]);
	// 	// scanf("%lld", &c[i]);
	// 	// scanf("%lld", &d[i]);
	// 	// a[i]--;
	// 	// b[i]--;
	// 	// c[i]--;
	// 	// tup[i].a--;
	// 	// tup[i].b--;
	// }
	// scanf("%llu", &m, &k);
	// scanf("%llu", &q);
	// scanf("%s", s);
	// for (i = 0; i < m; i++) {
	// 	scanf("%lld", &b[i]);
	// 	// b[i]--;
	// }

	// for (i = 0; i < h; i++) {
	// 	for (j = 0; j < w; j++) {
	// 		scanf("%llu", &table[i][j]);
	// 	}
	// }
	// // for (i = 0; i < h; i++) {
	// 	scanf("%s", &s[i]);
	// }

	solve();

	return 0;
}

Submission Info

Submission Time
Task G - 交換法則
User sheyasutaka
Language C (GCC 5.4.1)
Score 800
Code Size 7928 Byte
Status AC
Exec Time 33 ms
Memory 39680 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:435:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", s);
  ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 5
AC × 75
Set Name Test Cases
Sample 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 01_random_00, 01_random_01, 01_random_02, 01_random_03, 01_random_04, 01_random_05, 01_random_06, 01_random_07, 01_random_08, 01_random_09, 02_random_large_00, 02_random_large_01, 02_random_large_02, 02_random_large_03, 02_random_large_04, 02_random_large_05, 02_random_large_06, 02_random_large_07, 02_random_large_08, 02_random_large_09, 03_maximal_00, 03_maximal_01, 03_maximal_02, 03_maximal_03, 03_maximal_04, 04_fibonacci_00, 04_fibonacci_01, 04_fibonacci_02, 04_fibonacci_03, 04_fibonacci_04, 04_fibonacci_05, 04_fibonacci_06, 04_fibonacci_07, 04_fibonacci_08, 04_fibonacci_09, 05_single_00, 05_single_01, 05_single_02, 05_single_03, 05_single_04, 05_single_05, 05_single_06, 05_single_07, 05_single_08, 05_single_09, 06_dividing_00, 06_dividing_01, 06_dividing_02, 06_dividing_03, 06_dividing_04, 06_dividing_05, 06_dividing_06, 06_dividing_07, 06_dividing_08, 06_dividing_09, 97_max_00, 97_max_01, 97_max_02, 97_max_03, 97_max_04, 97_max_05, 98_challenge_00, 98_challenge_01, 98_challenge_02, 99_handmade_00, 99_handmade_01, 99_handmade_02, 99_handmade_03, 99_handmade_04, 99_handmade_05
Case Name Status Exec Time Memory
00_sample_00 AC 1 ms 4224 KB
00_sample_01 AC 1 ms 4224 KB
00_sample_02 AC 1 ms 4224 KB
00_sample_03 AC 1 ms 4224 KB
00_sample_04 AC 1 ms 4224 KB
01_random_00 AC 1 ms 4224 KB
01_random_01 AC 1 ms 4224 KB
01_random_02 AC 1 ms 4224 KB
01_random_03 AC 1 ms 4224 KB
01_random_04 AC 2 ms 4352 KB
01_random_05 AC 1 ms 4224 KB
01_random_06 AC 1 ms 4224 KB
01_random_07 AC 1 ms 4224 KB
01_random_08 AC 1 ms 4224 KB
01_random_09 AC 1 ms 4224 KB
02_random_large_00 AC 1 ms 4352 KB
02_random_large_01 AC 1 ms 4224 KB
02_random_large_02 AC 1 ms 4224 KB
02_random_large_03 AC 1 ms 4224 KB
02_random_large_04 AC 1 ms 4224 KB
02_random_large_05 AC 1 ms 4352 KB
02_random_large_06 AC 1 ms 4224 KB
02_random_large_07 AC 1 ms 4352 KB
02_random_large_08 AC 1 ms 4224 KB
02_random_large_09 AC 1 ms 4224 KB
03_maximal_00 AC 1 ms 4352 KB
03_maximal_01 AC 1 ms 4224 KB
03_maximal_02 AC 1 ms 4224 KB
03_maximal_03 AC 1 ms 4224 KB
03_maximal_04 AC 1 ms 4224 KB
04_fibonacci_00 AC 1 ms 4224 KB
04_fibonacci_01 AC 1 ms 4224 KB
04_fibonacci_02 AC 1 ms 4224 KB
04_fibonacci_03 AC 1 ms 4224 KB
04_fibonacci_04 AC 1 ms 4224 KB
04_fibonacci_05 AC 1 ms 4224 KB
04_fibonacci_06 AC 1 ms 4224 KB
04_fibonacci_07 AC 1 ms 4224 KB
04_fibonacci_08 AC 1 ms 4224 KB
04_fibonacci_09 AC 1 ms 4224 KB
05_single_00 AC 1 ms 4352 KB
05_single_01 AC 1 ms 4352 KB
05_single_02 AC 2 ms 4352 KB
05_single_03 AC 1 ms 4352 KB
05_single_04 AC 1 ms 4352 KB
05_single_05 AC 1 ms 4352 KB
05_single_06 AC 1 ms 4352 KB
05_single_07 AC 1 ms 4352 KB
05_single_08 AC 1 ms 4352 KB
05_single_09 AC 1 ms 4352 KB
06_dividing_00 AC 1 ms 4352 KB
06_dividing_01 AC 1 ms 4352 KB
06_dividing_02 AC 1 ms 4352 KB
06_dividing_03 AC 1 ms 4352 KB
06_dividing_04 AC 1 ms 4352 KB
06_dividing_05 AC 1 ms 4352 KB
06_dividing_06 AC 1 ms 4352 KB
06_dividing_07 AC 1 ms 4352 KB
06_dividing_08 AC 1 ms 4352 KB
06_dividing_09 AC 1 ms 4352 KB
97_max_00 AC 1 ms 4352 KB
97_max_01 AC 1 ms 4224 KB
97_max_02 AC 1 ms 4224 KB
97_max_03 AC 33 ms 39680 KB
97_max_04 AC 1 ms 4224 KB
97_max_05 AC 1 ms 4352 KB
98_challenge_00 AC 1 ms 4224 KB
98_challenge_01 AC 1 ms 4224 KB
98_challenge_02 AC 1 ms 4224 KB
99_handmade_00 AC 1 ms 4224 KB
99_handmade_01 AC 1 ms 4224 KB
99_handmade_02 AC 1 ms 4224 KB
99_handmade_03 AC 1 ms 4224 KB
99_handmade_04 AC 1 ms 4224 KB
99_handmade_05 AC 1 ms 4224 KB