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
2018-10-14 22:53:14+0900
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
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