Submission #7100604
Source Code Expand
#include <bits/stdc++.h>
#define range(i, l, r) for(int (i) = (l); (i) < (r); (i)++)
#define reversed_range(i, l, r) for (int (i) = (r) - 1; (i) >= l; (i)--)
using namespace std;
template <typename T>
using vec = vector<T>;
using lint = long long;
using ulint = unsigned long long;
using pint = pair<int, int>;
using plint = pair<lint, lint>;
template <typename S, typename T>
ostream& operator <<(ostream& os, pair<S, T> p) {
os << "(";
os << p.first << ", " << p.second;
return os << ")";
}
template <typename T>
ostream& operator <<(ostream& os, vec<T> v) {
os << "[";
if (v.size() == 0) return os << "]";
for (int i = 0; i < v.size() - 1; i++) {
os << v.at(i) << ", ";
}
return os << v.at(v.size() - 1) << "]";
}
template <typename T>
ostream& operator <<(ostream& os, set<T>& s) {
os << "{";
if (s.begin() == s.end()) return os << "}";
auto it_first_item = s.begin();
cout << *it_first_item;
for (auto it = ++it_first_item; it != s.end(); it++) {
cout << ", " << *it;
}
return cout << "}";
}
template <typename T>
ostream& operator <<(ostream& os, unordered_set<T>& s) {
os << "{";
if (s.begin() == s.end()) return os << "}";
auto it_first_item = s.begin();
cout << *it_first_item;
for (auto it = ++it_first_item; it != s.end(); it++) {
cout << ", " << *it;
}
return cout << "}";
}
template <typename K, typename V>
ostream& operator <<(ostream& os, map<K, V> m) {
os << "{";
if (m.begin() == m.end()) return os << "}";
auto it_first_item = m.begin();
cout << it_first_item->first << ": " << it_first_item->second;
for (auto it = ++it_first_item; it != m.end(); it++) {
cout << ", " << it->first << ": " << it->second;
}
return os << "}";
}
template <typename K, typename V>
ostream& operator <<(ostream& os, unordered_map<K, V> m) {
os << "{";
if (m.begin() == m.end()) return os << "}";
auto it_first_item = m.begin();
cout << it_first_item->first << ": " << it_first_item->second;
for (auto it = ++it_first_item; it != m.end(); it++) {
cout << ", " << it->first << ": " << it->second;
}
return os << "}";
}
lint pow(lint num, lint e, lint MOD) {
lint res = 1;
lint cur_num = num;
while (e) {
if (e & 1) {
res *= cur_num;
res %= MOD;
}
cur_num *= cur_num;
cur_num %= MOD;
e >>= 1;
}
return res;
}
int main() {
cin.tie(0); cout.tie(0);
ios::sync_with_stdio(false);
cout << fixed << setprecision(10);
lint N;
cin >> N;
unordered_set<lint> ng_numbers;
range(i, 0, 3) {
lint num; cin >> num;
ng_numbers.emplace(num);
}
if (ng_numbers.count(N)) {
cout << "NO" << "\n";
return 0;
}
vec<lint> num_steps_to_arrive(N + 1, 1LL << 58);
num_steps_to_arrive.at(N) = 0;
reversed_range(i, 0, N) {
if (ng_numbers.count(i)) continue;
range(j, 1, 4) {
if (i + j > N) continue;
num_steps_to_arrive.at(i) = min(num_steps_to_arrive.at(i),
num_steps_to_arrive.at(i + j) + 1);
}
}
// cout << num_steps_to_arrive << "\n";
cout << (num_steps_to_arrive.at(0) <= 100 ? "YES" : "NO") << "\n";
}
Submission Info
Submission Time |
|
Task |
C - 123引き算 |
User |
tmsausa |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
3455 Byte |
Status |
AC |
Exec Time |
1 ms |
Memory |
256 KB |
Judge Result
Set Name |
All |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
All |
sample_01.txt, sample_02.txt, sample_03.txt, test_143_142_141_140.txt, test_1_1_2_3.txt, test_1_2_3_4.txt, test_200_200_2_3.txt, test_231_77_78_80.txt, test_235_124_126_125.txt, test_253_45_47_48.txt, test_297_223_224_225.txt, test_297_294_292_290.txt, test_297_297_30_83.txt, test_297_3_43_72.txt, test_298_125_123_124.txt, test_298_293_295_291.txt, test_298_298_4_8.txt, test_298_36_72_98.txt, test_298_55_3_43.txt, test_298_92_91_295.txt, test_299_200_151_65.txt, test_299_240_35_154.txt, test_299_300_299_298.txt, test_299_33_242_151.txt, test_299_56_57_58.txt, test_299_66_132_198.txt, test_300_271_44_68.txt, test_300_299_298_296.txt, test_300_30_99_183.txt, test_300_4_5_6.txt, test_84_34_64_36.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
1 ms |
256 KB |
sample_02.txt |
AC |
1 ms |
256 KB |
sample_03.txt |
AC |
1 ms |
256 KB |
test_143_142_141_140.txt |
AC |
1 ms |
256 KB |
test_1_1_2_3.txt |
AC |
1 ms |
256 KB |
test_1_2_3_4.txt |
AC |
1 ms |
256 KB |
test_200_200_2_3.txt |
AC |
1 ms |
256 KB |
test_231_77_78_80.txt |
AC |
1 ms |
256 KB |
test_235_124_126_125.txt |
AC |
1 ms |
256 KB |
test_253_45_47_48.txt |
AC |
1 ms |
256 KB |
test_297_223_224_225.txt |
AC |
1 ms |
256 KB |
test_297_294_292_290.txt |
AC |
1 ms |
256 KB |
test_297_297_30_83.txt |
AC |
1 ms |
256 KB |
test_297_3_43_72.txt |
AC |
1 ms |
256 KB |
test_298_125_123_124.txt |
AC |
1 ms |
256 KB |
test_298_293_295_291.txt |
AC |
1 ms |
256 KB |
test_298_298_4_8.txt |
AC |
1 ms |
256 KB |
test_298_36_72_98.txt |
AC |
1 ms |
256 KB |
test_298_55_3_43.txt |
AC |
1 ms |
256 KB |
test_298_92_91_295.txt |
AC |
1 ms |
256 KB |
test_299_200_151_65.txt |
AC |
1 ms |
256 KB |
test_299_240_35_154.txt |
AC |
1 ms |
256 KB |
test_299_300_299_298.txt |
AC |
1 ms |
256 KB |
test_299_33_242_151.txt |
AC |
1 ms |
256 KB |
test_299_56_57_58.txt |
AC |
1 ms |
256 KB |
test_299_66_132_198.txt |
AC |
1 ms |
256 KB |
test_300_271_44_68.txt |
AC |
1 ms |
256 KB |
test_300_299_298_296.txt |
AC |
1 ms |
256 KB |
test_300_30_99_183.txt |
AC |
1 ms |
256 KB |
test_300_4_5_6.txt |
AC |
1 ms |
256 KB |
test_84_34_64_36.txt |
AC |
1 ms |
256 KB |