Submission #65459091
Source Code Expand
/* Template Version: 1.0.0 - 20220620 Author: Nguyen Tan Bao Status: Idea: */ #include <bits/stdc++.h> #define FI first #define SE second #define ALL(a) a.begin(), a.end() #define SZ(a) int((a).size()) #define MS(s, n) memset(s, n, sizeof(s)) #define FOR(i,a,b) for (int i = (a); i <= (b); i++) #define FORE(i,a,b) for (int i = (a); i >= (b); i--) #define FORALL(it, a) for (__typeof((a).begin()) it = (a).begin(); it != (a).end(); it++) #define TRAV(x, a) for (auto &x : a) using namespace std; using ll = long long; using ld = double; using pi = pair<int, int>; using pl = pair<ll, ll>; using pd = pair<ld, ld>; using cd = complex<ld>; using vcd = vector<cd>; using vi = vector<int>; using vl = vector<ll>; using vd = vector<ld>; using vs = vector<string>; using vpi = vector<pi>; using vpl = vector<pl>; using vpd = vector<pd>; // vector<pair> template<class T> using min_pq = priority_queue<T, vector<T>, greater<T> >; template<class T> inline int ckmin(T& a, const T& val) { return val < a ? a = val, 1 : 0; } template<class T> inline int ckmax(T& a, const T& val) { return a < val ? a = val, 1 : 0; } template<class T> void remDup(vector<T>& v) { sort(ALL(v)); v.erase(unique(ALL(v)), end(v)); } constexpr int pct(int x) { return __builtin_popcount(x); } // # of bits set constexpr int bits(int x) { return x == 0 ? 0 : 31-__builtin_clz(x); } // floor(log2(x)) constexpr int p2(int x) { return 1<<x; } constexpr int msk2(int x) { return p2(x)-1; } ll ceilDiv(ll a, ll b) { return a / b + ((a ^ b) > 0 && a % b); } // divide a by b rounded up ll floorDiv(ll a, ll b) { return a / b - ((a ^ b) < 0 && a % b); } // divide a by b rounded down void setPrec(int x) { cout << fixed << setprecision(x); } // TO_STRING #define ts to_string string ts(char c) { return string(1, c); } string ts(const char* s) { return (string) s; } string ts(string s) { return s; } string ts(bool b) { return (b ? "true" : "false"); } template<class T> using V = vector<T>; template<class T> string ts(complex<T> c); string ts(V<bool> v); template<size_t sz> string ts(bitset<sz> b); template<class T> string ts(T v); template<class T, class U> string ts(pair<T,U> p); template<class ...U> string ts(tuple<U...> u); template<class T> string ts(complex<T> c) { stringstream ss; ss << c; return ss.str(); } string ts(V<bool> v) {string res = "{"; FOR(i,0,SZ(v)-1) res += char('0'+v[i]); res += "}"; return res; } template<size_t sz> string ts(bitset<sz> b) { string res = ""; FOR(i,0,SZ(b)-1) res += char('0'+b[i]); return res; } template<class T> string ts(T v) { // containers with begin(), end() bool fst = 1; string res = ""; for (const auto& x: v) { if (!fst) res += " "; fst = 0; res += ts(x); } return res; } template<class T, class U> string ts(pair<T,U> p) { return "(" + ts(p.FI) + ", " + ts(p.SE) + ")"; } template<size_t i, class T> string print_tuple_utils(const T& tup) { if constexpr(i == tuple_size<T>::value) return ")"; else return (i ? ", " : "(") + ts(get<i>(tup)) + print_tuple_utils<i + 1, T>(tup); } template<class ...U> string ts(tuple<U...> u) { return print_tuple_utils<0, tuple<U...>>(u); } // OUTPUT template<class T> void pr(T x) { cout << ts(x); } template<class T, class ...U> void pr(const T& t, const U&... u) { pr(t); pr(u...); } void ps() { pr("\n"); } // print w/ spaces template<class T, class ...U> void ps(const T& t, const U&... u) { pr(t); if (sizeof...(u)) pr(" "); ps(u...); } // DEBUG void DBG() { cerr << "]" << endl; } template<class T, class ...U> void DBG(const T& t, const U&... u) { cerr << ts(t); if (sizeof...(u)) cerr << ", "; DBG(u...); } #ifdef LOCAL_DEBUG #define CONCAT(x, y) x##y #define with_level setw(__db_level * 2) << setfill(' ') << "" << setw(0) #define dbg(...) cerr << with_level << "Line(" << __LINE__ << ") -> [" << #__VA_ARGS__ << "]: [", DBG(__VA_ARGS__) #define chk(...) if (!(__VA_ARGS__)) cerr << setw(__db_level * 2) << setfill(' ') << "" << setw(0) << "Line(" << __LINE__ << ") -> function(" << __FUNCTION__ << ") -> CHK FAILED: (" << #__VA_ARGS__ << ")" << "\n", exit(0); #define db_block() debug_block CONCAT(dbbl, __LINE__) int __db_level = 0; struct debug_block { debug_block() { cerr << with_level << "{" << endl; ++__db_level; } ~debug_block() { --__db_level; cerr << with_level << "}" << endl; } }; #else #define dbg(...) 0 #define chk(...) 0 #define db_block() 0 #endif const ld PI = acos(-1.0); const int dx[4] = {1,0,-1,0}, dy[4] = {0,1,0,-1}; const ld EPS = 1e-9; const ll MODBASE = 1000000007LL; const int INF = 0x3f3f3f3f; const int MAXN = 2010; const int MAXM = 1000; const int MAXK = 16; const int MAXQ = 200010; int n, a[MAXN], c[MAXN]; int dp[MAXN], jump[MAXN]; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); cin >> n; FOR(i,1,n-1) cin >> c[i]; FOR(i,1,n-1) cin >> a[i]; a[0] = 1; dp[0] = 0; jump[0] = 0; FOR(i,1,n-1) { int l = max(0, i - c[i]), r = i-1; bool co = false; FOR(j,l,r) { if (a[j] == 1) { co = true; break; } } if (co) { jump[i] = 1; } else { jump[i] = INF; FOR(j,l,r) { ckmin(jump[i], jump[j] + 1); } } if (a[i] == 0) { dp[i] = dp[i-1]; } else { dp[i] = dp[i-1] + jump[i]; } } cout << dp[n-1]; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Bowls and Beans |
User | farmerboy |
Language | C++ 20 (gcc 12.2) |
Score | 475 |
Code Size | 5573 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 3660 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 475 / 475 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt, test_72.txt, test_73.txt, test_74.txt, test_75.txt, test_76.txt, test_77.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 3336 KiB |
sample_02.txt | AC | 1 ms | 3644 KiB |
sample_03.txt | AC | 1 ms | 3504 KiB |
test_01.txt | AC | 1 ms | 3440 KiB |
test_02.txt | AC | 1 ms | 3516 KiB |
test_03.txt | AC | 1 ms | 3512 KiB |
test_04.txt | AC | 1 ms | 3512 KiB |
test_05.txt | AC | 1 ms | 3644 KiB |
test_06.txt | AC | 1 ms | 3516 KiB |
test_07.txt | AC | 1 ms | 3572 KiB |
test_08.txt | AC | 1 ms | 3396 KiB |
test_09.txt | AC | 1 ms | 3656 KiB |
test_10.txt | AC | 1 ms | 3472 KiB |
test_11.txt | AC | 1 ms | 3540 KiB |
test_12.txt | AC | 1 ms | 3460 KiB |
test_13.txt | AC | 1 ms | 3456 KiB |
test_14.txt | AC | 1 ms | 3604 KiB |
test_15.txt | AC | 2 ms | 3532 KiB |
test_16.txt | AC | 1 ms | 3448 KiB |
test_17.txt | AC | 1 ms | 3468 KiB |
test_18.txt | AC | 1 ms | 3460 KiB |
test_19.txt | AC | 1 ms | 3472 KiB |
test_20.txt | AC | 1 ms | 3460 KiB |
test_21.txt | AC | 1 ms | 3532 KiB |
test_22.txt | AC | 1 ms | 3536 KiB |
test_23.txt | AC | 2 ms | 3460 KiB |
test_24.txt | AC | 1 ms | 3432 KiB |
test_25.txt | AC | 1 ms | 3540 KiB |
test_26.txt | AC | 1 ms | 3460 KiB |
test_27.txt | AC | 1 ms | 3532 KiB |
test_28.txt | AC | 1 ms | 3524 KiB |
test_29.txt | AC | 1 ms | 3660 KiB |
test_30.txt | AC | 1 ms | 3472 KiB |
test_31.txt | AC | 1 ms | 3560 KiB |
test_32.txt | AC | 1 ms | 3540 KiB |
test_33.txt | AC | 1 ms | 3460 KiB |
test_34.txt | AC | 1 ms | 3456 KiB |
test_35.txt | AC | 1 ms | 3396 KiB |
test_36.txt | AC | 1 ms | 3432 KiB |
test_37.txt | AC | 1 ms | 3540 KiB |
test_38.txt | AC | 1 ms | 3524 KiB |
test_39.txt | AC | 1 ms | 3476 KiB |
test_40.txt | AC | 1 ms | 3544 KiB |
test_41.txt | AC | 1 ms | 3392 KiB |
test_42.txt | AC | 1 ms | 3508 KiB |
test_43.txt | AC | 1 ms | 3512 KiB |
test_44.txt | AC | 1 ms | 3544 KiB |
test_45.txt | AC | 1 ms | 3540 KiB |
test_46.txt | AC | 1 ms | 3516 KiB |
test_47.txt | AC | 1 ms | 3524 KiB |
test_48.txt | AC | 1 ms | 3396 KiB |
test_49.txt | AC | 1 ms | 3592 KiB |
test_50.txt | AC | 1 ms | 3476 KiB |
test_51.txt | AC | 1 ms | 3512 KiB |
test_52.txt | AC | 1 ms | 3400 KiB |
test_53.txt | AC | 1 ms | 3520 KiB |
test_54.txt | AC | 1 ms | 3392 KiB |
test_55.txt | AC | 1 ms | 3656 KiB |
test_56.txt | AC | 1 ms | 3508 KiB |
test_57.txt | AC | 1 ms | 3604 KiB |
test_58.txt | AC | 1 ms | 3528 KiB |
test_59.txt | AC | 1 ms | 3520 KiB |
test_60.txt | AC | 1 ms | 3460 KiB |
test_61.txt | AC | 1 ms | 3656 KiB |
test_62.txt | AC | 1 ms | 3544 KiB |
test_63.txt | AC | 1 ms | 3608 KiB |
test_64.txt | AC | 1 ms | 3540 KiB |
test_65.txt | AC | 1 ms | 3536 KiB |
test_66.txt | AC | 1 ms | 3528 KiB |
test_67.txt | AC | 1 ms | 3512 KiB |
test_68.txt | AC | 1 ms | 3540 KiB |
test_69.txt | AC | 1 ms | 3540 KiB |
test_70.txt | AC | 1 ms | 3508 KiB |
test_71.txt | AC | 2 ms | 3508 KiB |
test_72.txt | AC | 1 ms | 3396 KiB |
test_73.txt | AC | 1 ms | 3596 KiB |
test_74.txt | AC | 1 ms | 3540 KiB |
test_75.txt | AC | 1 ms | 3528 KiB |
test_76.txt | AC | 1 ms | 3460 KiB |
test_77.txt | AC | 1 ms | 3516 KiB |