Submission #636565

# Submission time Handle Problem Language Result Execution time Memory
636565 2022-08-29T14:56:35 Z rainboy Sightseeing in Kyoto (JOI22_kyoto) C
Compilation error
0 ms 0 KB
C#include <stdio.h>
#include <string.h>

#define N	100000
#define M	100000
#define N_	3000
#define M_	3000
#define INF	0x3f3f3f3f3f3f3f3f

long long min(long long a, long long b) { return a < b ? a : b; }

long long cross2(int x1, int y1, int x2, int y2) {
	return (long long) x1 * y2 - (long long) x2 * y1;
}

long long cross(int x0, int y0, int x1, int y1, int x2, int y2) {
	return cross2(x1 - x0, y1 - y0, x2 - x0, y2 - y0);
}

int main() {
	static int aa[N], bb[M], ii[N_], jj[M_];
	static long long dp[N_][M_];
	int n, n_, m, m_, i, j;

	scanf("%d%d", &n, &m);
	for (i = 0; i < n; i++)
		scanf("%d", &aa[i]);
	for (j = 0; j < m; j++)
		scanf("%d", &bb[j]);
	n_ = 0;
	for (i = 0; i < n; i++) {
		while (n_ >= 2 && cross(ii[n_ - 2], aa[ii[n_ - 2]], ii[n_ - 1], aa[ii[n_ - 1]], i, aa[i]) <= 0)
			n_--;
		ii[n_++] = i;
	}
	m_ = 0;
	for (j = 0; j < m; j++) {
		while (m_ >= 2 && cross(jj[m_ - 2], bb[jj[m_ - 2]], jj[m_ - 1], bb[jj[m_ - 1]], j, bb[j]) <= 0)
			m_--;
		jj[m_++] = j;
	}
	for (i = 0; i < n_; i++)
		memset(dp[i], 0x3f, m_ * sizeof *dp[i]);
	dp[0][0] = 0;
	for (i = 0; i < n_; i++)
		for (j = 0; j < m_; j++) {
			long long x = dp[i][j];

			if (x == INF)
				continue;
			if (j + 1 < m_)
				dp[i][j + 1] = min(dp[i][j + 1], x + (long long) aa[ii[i]] * (jj[j + 1] - jj[j]));
			if (i + 1 < n_)
				dp[i + 1][j] = min(dp[i + 1][j], x + (long long) bb[jj[j]] * (ii[i + 1] - ii[i]));
		}
	printf("%lld\n", dp[n_ - 1][m_ - 1]);
	return 0;
}

Compilation message

kyoto.c:1:2: error: stray '#' in program
    1 | C#include <stdio.h>
      |  ^
kyoto.c:1:1: error: unknown type name 'C'
    1 | C#include <stdio.h>
      | ^
kyoto.c:1:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
    1 | C#include <stdio.h>
      |           ^
In file included from kyoto.c:2:
/usr/include/string.h:44:8: error: unknown type name 'size_t'
   44 |        size_t __n) __THROW __nonnull ((1, 2));
      |        ^~~~~~
/usr/include/string.h:34:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
   33 | #include <stddef.h>
  +++ |+#include <stddef.h>
   34 | 
/usr/include/string.h:47:56: error: unknown type name 'size_t'
   47 | extern void *memmove (void *__dest, const void *__src, size_t __n)
      |                                                        ^~~~~~
/usr/include/string.h:47:56: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:55:18: error: unknown type name 'size_t'
   55 |         int __c, size_t __n)
      |                  ^~~~~~
/usr/include/string.h:55:18: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:61:42: error: unknown type name 'size_t'
   61 | extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));
      |                                          ^~~~~~
/usr/include/string.h:61:42: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:64:56: error: unknown type name 'size_t'
   64 | extern int memcmp (const void *__s1, const void *__s2, size_t __n)
      |                                                        ^~~~~~
/usr/include/string.h:64:56: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:91:48: error: unknown type name 'size_t'
   91 | extern void *memchr (const void *__s, int __c, size_t __n)
      |                                                ^~~~~~
/usr/include/string.h:91:48: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:126:39: error: unknown type name 'size_t'
  126 |         const char *__restrict __src, size_t __n)
      |                                       ^~~~~~
/usr/include/string.h:126:39: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:134:9: error: unknown type name 'size_t'
  134 |         size_t __n) __THROW __nonnull ((1, 2));
      |         ^~~~~~
/usr/include/string.h:134:9: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:140:57: error: unknown type name 'size_t'
  140 | extern int strncmp (const char *__s1, const char *__s2, size_t __n)
      |                                                         ^~~~~~
/usr/include/string.h:140:57: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:147:8: error: unknown type name 'size_t'
  147 | extern size_t strxfrm (char *__restrict __dest,
      |        ^~~~~~
/usr/include/string.h:148:40: error: unknown type name 'size_t'
  148 |          const char *__restrict __src, size_t __n)
      |                                        ^~~~~~
/usr/include/string.h:148:40: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from kyoto.c:2:
/usr/include/string.h:160:8: error: unknown type name 'size_t'
  160 | extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
      |        ^~~~~~
/usr/include/string.h:160:59: error: unknown type name 'size_t'
  160 | extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
      |                                                           ^~~~~~
/usr/include/string.h:160:59: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:175:45: error: unknown type name 'size_t'
  175 | extern char *strndup (const char *__string, size_t __n)
      |                                             ^~~~~~
/usr/include/string.h:175:45: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:273:8: error: unknown type name 'size_t'
  273 | extern size_t strcspn (const char *__s, const char *__reject)
      |        ^~~~~~
/usr/include/string.h:277:8: error: unknown type name 'size_t'
  277 | extern size_t strspn (const char *__s, const char *__accept)
      |        ^~~~~~
/usr/include/string.h:385:8: error: unknown type name 'size_t'
  385 | extern size_t strlen (const char *__s)
      |        ^~~~~~
/usr/include/string.h:391:8: error: unknown type name 'size_t'
  391 | extern size_t strnlen (const char *__string, size_t __maxlen)
      |        ^~~~~~
/usr/include/string.h:391:46: error: unknown type name 'size_t'
  391 | extern size_t strnlen (const char *__string, size_t __maxlen)
      |                                              ^~~~~~
/usr/include/string.h:391:46: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/string.h:410:12: error: unknown type name 'size_t'
  410 | extern int __REDIRECT_NTH (strerror_r,
      |            ^~~~~~~~~~~~~~
/usr/include/string.h:410:12: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/string.h:432,
                 from kyoto.c:2:
/usr/include/strings.h:34:54: error: unknown type name 'size_t'
   34 | extern int bcmp (const void *__s1, const void *__s2, size_t __n)
      |                                                      ^~~~~~
/usr/include/strings.h:24:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
   23 | #include <stddef.h>
  +++ |+#include <stddef.h>
   24 | 
/usr/include/strings.h:38:53: error: unknown type name 'size_t'
   38 | extern void bcopy (const void *__src, void *__dest, size_t __n)
      |                                                     ^~~~~~
/usr/include/strings.h:38:53: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/strings.h:42:31: error: unknown type name 'size_t'
   42 | extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
      |                               ^~~~~~
/usr/include/strings.h:42:31: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/strings.h:120:61: error: unknown type name 'size_t'
  120 | extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
      |                                                             ^~~~~~
/usr/include/strings.h:120:61: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/strings.h:134:6: error: unknown type name 'size_t'
  134 |      size_t __n, locale_t __loc)
      |      ^~~~~~
/usr/include/strings.h:134:6: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:23:1: error: unknown type name 'size_t'
   23 | __NTH (bcopy (const void *__src, void *__dest, size_t __len))
      | ^~~~~
In file included from /usr/include/strings.h:144,
                 from /usr/include/string.h:432,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:1:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
  +++ |+#include <stddef.h>
    1 | /* Fortify macros for strings.h functions.
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:29:1: error: unknown type name 'size_t'
   29 | __NTH (bzero (void *__dest, size_t __len))
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/strings_fortified.h:29:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from kyoto.c:2:
/usr/include/string.h:436:40: error: unknown type name 'size_t'
  436 | extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1));
      |                                        ^~~~~~
/usr/include/string.h:436:40: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:458:34: error: unknown type name 'size_t'
  458 |    const char *__restrict __src, size_t __n)
      |                                  ^~~~~~
/usr/include/string.h:458:34: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/string.h:461:39: error: unknown type name 'size_t'
  461 |         const char *__restrict __src, size_t __n)
      |                                       ^~~~~~
/usr/include/string.h:461:39: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:31:1: error: unknown type name 'size_t'
   31 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
In file included from /usr/include/string.h:495,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:1:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
  +++ |+#include <stddef.h>
    1 | /* Copyright (C) 2004-2020 Free Software Foundation, Inc.
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:38:1: error: unknown type name 'size_t'
   38 | __NTH (memmove (void *__dest, const void *__src, size_t __len))
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:38:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:59:1: error: unknown type name 'size_t'
   59 | __NTH (memset (void *__dest, int __ch, size_t __len))
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:59:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/string.h:495,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:42: error: unknown type name 'size_t'
   77 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen)
      |                                          ^~~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:42: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:56: error: unknown type name 'size_t'
   77 | void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen)
      |                                                        ^~~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:56: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:81:1: error: unknown type name 'size_t'
   81 | __NTH (explicit_bzero (void *__dest, size_t __len))
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:81:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:103:1: error: unknown type name 'size_t'
  103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:103:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/string.h:495,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:110:62: error: unknown type name 'size_t'
  110 | extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
      |                                                              ^~~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:110:62: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:111:8: error: unknown type name 'size_t'
  111 |        size_t __destlen) __THROW;
      |        ^~~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:111:8: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
In file included from /usr/include/features.h:461,
                 from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                 from /usr/include/string.h:26,
                 from kyoto.c:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:112:14: error: unknown type name 'size_t'
  112 | extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest, const char *__src,
      |              ^~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:112:14: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:116:1: error: unknown type name 'size_t'
  116 | __NTH (stpncpy (char *__dest, const char *__src, size_t __n))
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:116:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:133:1: error: unknown type name 'size_t'
  133 | __NTH (strncat (char *__restrict __dest, const char *__restrict __src,
      | ^~~~~
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:133:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
kyoto.c: In function 'main':
kyoto.c:25:2: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
   25 |  scanf("%d%d", &n, &m);
      |  ^~~~~
kyoto.c:25:2: warning: incompatible implicit declaration of built-in function 'scanf'
kyoto.c:3:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
    2 | #include <string.h>
  +++ |+#include <stdio.h>
    3 | 
kyoto.c:43:3: warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
   43 |   memset(dp[i], 0x3f, m_ * sizeof *dp[i]);
      |   ^~~~~~
kyoto.c:43:3: warning: incompatible implicit declaration of built-in function 'memset'
kyoto.c:3:1: note: include '<string.h>' or provide a declaration of 'memset'
    2 | #include <string.h>
  +++ |+#include <string.h>
    3 | 
kyoto.c:56:2: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
   56 |  printf("%lld\n", dp[n_ - 1][m_ - 1]);
      |  ^~~~~~
kyoto.c:56:2: warning: incompatible implicit declaration of built-in function 'printf'
kyoto.c:56:2: note: include '<stdio.h>' or provide a declaration of 'printf'