/*************************************
* 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 |
- |