답안 #1099987

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1099987 2024-10-12T10:32:35 Z marvinthang Bring Down the Grading Server (CEOI23_gradingserver) C++17
20 / 100
519 ms 221336 KB
/*************************************
*    author: marvinthang             *
*    created: 24.08.2023 16:39:02    *
*************************************/

#include <bits/stdc++.h>

using namespace std;

#define                  fi  first
#define                  se  second
#define                left  ___left
#define               right  ___right
#define                TIME  (1.0 * clock() / CLOCKS_PER_SEC)
#define             MASK(i)  (1LL << (i))
#define           BIT(x, i)  ((x) >> (i) & 1)
#define  __builtin_popcount  __builtin_popcountll
#define              ALL(v)  (v).begin(), (v).end()
#define           REP(i, n)  for (int i = 0, _n = (n); i < _n; ++i)
#define          REPD(i, n)  for (int i = (n); i-- > 0; )
#define        FOR(i, a, b)  for (int i = (a), _b = (b); i < _b; ++i) 
#define       FORD(i, b, a)  for (int i = (b), _a = (a); --i >= _a; ) 
#define       FORE(i, a, b)  for (int i = (a), _b = (b); i <= _b; ++i) 
#define      FORDE(i, b, a)  for (int i = (b), _a = (a); i >= _a; --i) 
#define        scan_op(...)  istream & operator >> (istream &in, __VA_ARGS__ &u)
#define       print_op(...)  ostream & operator << (ostream &out, const __VA_ARGS__ &u)
#ifdef LOCAL
    #include "debug.h"
#else
    #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
    #define DB(...) 23
    #define db(...) 23
    #define debug(...) 23
#endif

template <class U, class V> scan_op(pair <U, V>)  { return in >> u.first >> u.second; }
template <class T> scan_op(vector <T>)  { for (size_t i = 0; i < u.size(); ++i) in >> u[i]; return in; }
template <class U, class V> print_op(pair <U, V>)  { return out << '(' << u.first << ", " << u.second << ')'; }
template <size_t i, class T> ostream & print_tuple_utils(ostream &out, const T &tup) { if constexpr(i == tuple_size<T>::value) return out << ")";  else return print_tuple_utils<i + 1, T>(out << (i ? ", " : "(") << get<i>(tup), tup); }
template <class ...U> print_op(tuple<U...>) { return print_tuple_utils<0, tuple<U...>>(out, u); }
template <class Con, class = decltype(begin(declval<Con>()))> typename enable_if <!is_same<Con, string>::value, ostream&>::type operator << (ostream &out, const Con &con) { out << '{'; for (__typeof(con.begin()) it = con.begin(); it != con.end(); ++it) out << (it == con.begin() ? "" : ", ") << *it; return out << '}'; }

// end of template

int S, Q;

void init(void) {
	cin >> S >> Q;
}

bool solve(long long ch, long long fh, long long cg, long long fg) {
	while (true) {
		if (ch > fg) {
			cg -= ch - fg;
		} else break;
		if (cg < 0) return true;
		if (cg > fh) {
			ch -= cg - fh;
		} else break;
		if (ch < 0) return false;
	}
	if (ch > fg) return true;
	if (cg > fh) return false;
	return fg - ch <= fh - cg;
}

const int MAX = 303;

int dp[MAX][MAX][MAX];

bool check(int, int, int, int);

int f(int ch, int cg, int fg) {
    if (ch <= 0) return 301;
    if (cg <= 0) return 0;
    int &fh = dp[ch][cg][fg];
    if (fh != -1) return fh;
    fh = f(ch, cg - 1, fg);
    while (fh <= 300 && !((fg && !check(cg, fg - 1, ch, fh)) || (ch > fg * S && !check(cg - ch + fg * S, fg, ch, fh)))) ++fh;
    return fh;
}

bool check(int ch, int fh, int cg, int fg) {
	return f(ch, cg, fg) <= fh;
}

void process(void) {
	if (S == 1) {
		while (Q--) {
			long long ch, fh, cg, fg;
			cin >> ch >> fh >> cg >> fg;
			cout << (solve(ch, fh, cg, fg) ? "YES" : "NO") << '\n';
		}
	} else {
		memset(dp, -1, sizeof(dp));
		while (Q--) {
			int ch, fh, cg, fg;
			cin >> ch >> fh >> cg >> fg;
			cout << (check(ch, fh, cg, fg) ? "YES" : "NO") << '\n';
		}
	}
}

int main(void) {
	ios_base::sync_with_stdio(false); cin.tie(nullptr); // cout.tie(nullptr);
	file("grading-server");
	init();
	process();
	// cerr << "Time elapsed: " << TIME << " s.\n";
	return (0^0);
}

Compilation message

gradingserver.cpp: In function 'int main()':
gradingserver.cpp:30:61: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
gradingserver.cpp:106:2: note: in expansion of macro 'file'
  106 |  file("grading-server");
      |  ^~~~
gradingserver.cpp:30:94: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                                                       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
gradingserver.cpp:106:2: note: in expansion of macro 'file'
  106 |  file("grading-server");
      |  ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 109160 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Runtime error 85 ms 221120 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
10 Correct 13 ms 109148 KB Output is correct
11 Correct 65 ms 112832 KB Output is correct
12 Correct 91 ms 112980 KB Output is correct
13 Correct 69 ms 112932 KB Output is correct
14 Correct 64 ms 112980 KB Output is correct
15 Correct 74 ms 112724 KB Output is correct
16 Correct 66 ms 112720 KB Output is correct
17 Correct 63 ms 112932 KB Output is correct
18 Correct 104 ms 112928 KB Output is correct
19 Correct 426 ms 113620 KB Output is correct
20 Correct 391 ms 113456 KB Output is correct
21 Correct 450 ms 113652 KB Output is correct
22 Correct 439 ms 113696 KB Output is correct
23 Correct 507 ms 113808 KB Output is correct
24 Correct 453 ms 113460 KB Output is correct
25 Correct 386 ms 113632 KB Output is correct
26 Correct 440 ms 113492 KB Output is correct
27 Correct 437 ms 113476 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 13848 KB Output is correct
2 Correct 84 ms 12664 KB Output is correct
3 Correct 94 ms 13344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
10 Correct 13 ms 109148 KB Output is correct
11 Correct 65 ms 112832 KB Output is correct
12 Correct 91 ms 112980 KB Output is correct
13 Correct 69 ms 112932 KB Output is correct
14 Correct 64 ms 112980 KB Output is correct
15 Correct 74 ms 112724 KB Output is correct
16 Correct 66 ms 112720 KB Output is correct
17 Correct 63 ms 112932 KB Output is correct
18 Correct 104 ms 112928 KB Output is correct
19 Correct 426 ms 113620 KB Output is correct
20 Correct 391 ms 113456 KB Output is correct
21 Correct 450 ms 113652 KB Output is correct
22 Correct 439 ms 113696 KB Output is correct
23 Correct 507 ms 113808 KB Output is correct
24 Correct 453 ms 113460 KB Output is correct
25 Correct 386 ms 113632 KB Output is correct
26 Correct 440 ms 113492 KB Output is correct
27 Correct 437 ms 113476 KB Output is correct
28 Correct 13 ms 109148 KB Output is correct
29 Correct 71 ms 112880 KB Output is correct
30 Correct 68 ms 112940 KB Output is correct
31 Correct 67 ms 112980 KB Output is correct
32 Correct 67 ms 112968 KB Output is correct
33 Correct 85 ms 112724 KB Output is correct
34 Correct 75 ms 112944 KB Output is correct
35 Correct 71 ms 112892 KB Output is correct
36 Correct 71 ms 112824 KB Output is correct
37 Correct 471 ms 113460 KB Output is correct
38 Correct 440 ms 113492 KB Output is correct
39 Correct 443 ms 113708 KB Output is correct
40 Correct 450 ms 113748 KB Output is correct
41 Correct 505 ms 113708 KB Output is correct
42 Correct 454 ms 113296 KB Output is correct
43 Correct 414 ms 113492 KB Output is correct
44 Correct 488 ms 113480 KB Output is correct
45 Correct 424 ms 113476 KB Output is correct
46 Runtime error 110 ms 221212 KB Execution killed with signal 11
47 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
10 Correct 13 ms 109148 KB Output is correct
11 Correct 65 ms 112832 KB Output is correct
12 Correct 91 ms 112980 KB Output is correct
13 Correct 69 ms 112932 KB Output is correct
14 Correct 64 ms 112980 KB Output is correct
15 Correct 74 ms 112724 KB Output is correct
16 Correct 66 ms 112720 KB Output is correct
17 Correct 63 ms 112932 KB Output is correct
18 Correct 104 ms 112928 KB Output is correct
19 Correct 426 ms 113620 KB Output is correct
20 Correct 391 ms 113456 KB Output is correct
21 Correct 450 ms 113652 KB Output is correct
22 Correct 439 ms 113696 KB Output is correct
23 Correct 507 ms 113808 KB Output is correct
24 Correct 453 ms 113460 KB Output is correct
25 Correct 386 ms 113632 KB Output is correct
26 Correct 440 ms 113492 KB Output is correct
27 Correct 437 ms 113476 KB Output is correct
28 Correct 89 ms 13848 KB Output is correct
29 Correct 84 ms 12664 KB Output is correct
30 Correct 94 ms 13344 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 104 ms 13832 KB Output is correct
33 Correct 107 ms 12628 KB Output is correct
34 Correct 96 ms 13384 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 14 ms 109148 KB Output is correct
37 Correct 69 ms 112932 KB Output is correct
38 Correct 106 ms 112976 KB Output is correct
39 Correct 105 ms 113004 KB Output is correct
40 Correct 86 ms 112976 KB Output is correct
41 Correct 71 ms 112888 KB Output is correct
42 Correct 80 ms 112876 KB Output is correct
43 Correct 82 ms 112904 KB Output is correct
44 Correct 100 ms 112976 KB Output is correct
45 Correct 461 ms 113464 KB Output is correct
46 Correct 415 ms 113456 KB Output is correct
47 Correct 439 ms 113744 KB Output is correct
48 Correct 431 ms 113760 KB Output is correct
49 Correct 463 ms 113748 KB Output is correct
50 Correct 462 ms 113460 KB Output is correct
51 Correct 408 ms 113480 KB Output is correct
52 Correct 476 ms 113456 KB Output is correct
53 Correct 519 ms 113476 KB Output is correct
54 Runtime error 124 ms 221336 KB Execution killed with signal 11
55 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
10 Correct 15 ms 109092 KB Output is correct
11 Correct 83 ms 112960 KB Output is correct
12 Correct 95 ms 112928 KB Output is correct
13 Correct 79 ms 112976 KB Output is correct
14 Correct 113 ms 112812 KB Output is correct
15 Correct 80 ms 112724 KB Output is correct
16 Correct 104 ms 112784 KB Output is correct
17 Correct 77 ms 112800 KB Output is correct
18 Correct 88 ms 112920 KB Output is correct
19 Runtime error 101 ms 221112 KB Execution killed with signal 11
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 13 ms 109308 KB Output is correct
2 Correct 74 ms 112784 KB Output is correct
3 Correct 78 ms 112852 KB Output is correct
4 Correct 65 ms 112856 KB Output is correct
5 Correct 65 ms 112976 KB Output is correct
6 Correct 68 ms 112856 KB Output is correct
7 Correct 75 ms 112764 KB Output is correct
8 Correct 64 ms 112724 KB Output is correct
9 Correct 92 ms 112976 KB Output is correct
10 Correct 13 ms 109148 KB Output is correct
11 Correct 65 ms 112832 KB Output is correct
12 Correct 91 ms 112980 KB Output is correct
13 Correct 69 ms 112932 KB Output is correct
14 Correct 64 ms 112980 KB Output is correct
15 Correct 74 ms 112724 KB Output is correct
16 Correct 66 ms 112720 KB Output is correct
17 Correct 63 ms 112932 KB Output is correct
18 Correct 104 ms 112928 KB Output is correct
19 Correct 426 ms 113620 KB Output is correct
20 Correct 391 ms 113456 KB Output is correct
21 Correct 450 ms 113652 KB Output is correct
22 Correct 439 ms 113696 KB Output is correct
23 Correct 507 ms 113808 KB Output is correct
24 Correct 453 ms 113460 KB Output is correct
25 Correct 386 ms 113632 KB Output is correct
26 Correct 440 ms 113492 KB Output is correct
27 Correct 437 ms 113476 KB Output is correct
28 Correct 89 ms 13848 KB Output is correct
29 Correct 84 ms 12664 KB Output is correct
30 Correct 94 ms 13344 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 13 ms 109148 KB Output is correct
33 Correct 71 ms 112880 KB Output is correct
34 Correct 68 ms 112940 KB Output is correct
35 Correct 67 ms 112980 KB Output is correct
36 Correct 67 ms 112968 KB Output is correct
37 Correct 85 ms 112724 KB Output is correct
38 Correct 75 ms 112944 KB Output is correct
39 Correct 71 ms 112892 KB Output is correct
40 Correct 71 ms 112824 KB Output is correct
41 Correct 471 ms 113460 KB Output is correct
42 Correct 440 ms 113492 KB Output is correct
43 Correct 443 ms 113708 KB Output is correct
44 Correct 450 ms 113748 KB Output is correct
45 Correct 505 ms 113708 KB Output is correct
46 Correct 454 ms 113296 KB Output is correct
47 Correct 414 ms 113492 KB Output is correct
48 Correct 488 ms 113480 KB Output is correct
49 Correct 424 ms 113476 KB Output is correct
50 Runtime error 110 ms 221212 KB Execution killed with signal 11
51 Halted 0 ms 0 KB -