Submission #7085096
Source Code Expand
#include <iostream> #include <vector> #include <cstring> #include <algorithm> // sort #include <map> #include <string> #include <bits/stdc++.h> #define REP(i, n) for (long long i = 0; i < (n); i++) typedef long long ll; static const ll MOD = 1000000007; static const ll INF = 1000000000000000000LL; using namespace std; using pint = pair<int,int>; bool res = false; vector <int> NG(3); int dfs(int n, int cnt) { // cout << n << endl; if(n < 0) return -1; if(cnt > 100)return -1; if(res == true)return 0; if(n == 0) { res = true; // cout << cnt << endl; return 0; } bool fag1 = true; bool fag2 = true; bool fag3 = true; if(n-2 < 0) fag2 = false; if(n-3 < 0) fag3 = false; REP(i,3) { if(n-1 == NG[i])fag1 = false; if(n-2 == NG[i])fag2 = false; if(n-3 == NG[i])fag3 = false; } if(fag3) { dfs(n-3, cnt + 1); } else if(fag2) { dfs(n-2, cnt + 1); } else if(fag1) { dfs(n-1, cnt + 1); } else { return -1; } return -1; } //1, 2, 3 引き算 //観点: 3つが連続していなければOK, NでなければOK //ただし,100回以内に納めること <= 300 int main(){ int N; cin >> N; if(N > 300) { cout << "NO" << endl; return 0; } REP(i,3) { cin >> NG[i]; } REP(i,3) { if(N == NG[i]) { cout << "NO" << endl; return 0; } } sort(NG.begin(),NG.end()); int ren = 1; REP(i,2) { if(NG[i] == NG[i+1] -1)++ren; } if(ren == 3 && NG[0] < N) { cout << "NO" << endl; return 0; } dfs(N,0); string str = "NO"; if(res == true) { str = "YES"; } cout << str << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 123引き算 |
User | mozaic |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1809 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 |