Submission #741897

#TimeUsernameProblemLanguageResultExecution timeMemory
741897pavementMizuyokan 2 (JOI23_mizuyokan2)C++17
0 / 100
250 ms4020 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define int long long #define mp make_pair #define mt make_tuple #define pb push_back #define ppb pop_back #define eb emplace_back #define g0(a) get<0>(a) #define g1(a) get<1>(a) #define g2(a) get<2>(a) #define g3(a) get<3>(a) #define g4(a) get<4>(a) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); using db = double; using ll = long long; using ld = long double; using ii = pair<int, int>; using iii = tuple<int, int, int>; using iiii = tuple<int, int, int, int>; using iiiii = tuple<int, int, int, int, int>; template<class key, class value = null_type, class cmp = less<key> > using ordered_set = tree<key, value, cmp, rb_tree_tag, tree_order_statistics_node_update>; int N, Q, L[250005]; main() { ios::sync_with_stdio(0); cin.tie(0); cin >> N; for (int i = 1; i <= N; i++) { cin >> L[i]; } cin >> Q; for (int i = 1, X, Y, A, B; i <= Q; i++) { cin >> X >> Y >> A >> B; L[X] = Y; vector<int> C, P; for (int j = A + 1; j <= B; j++) { C.pb(L[j]); //~ cout << L[j] << ' '; } //~ cout << '\n'; partial_sum(C.begin(), C.end(), back_inserter(P)); int ans = 1; for (int ed = 0; ed < (int)C.size(); ed++) { if (P.back() - P[ed] <= C[ed]) continue; int cur = ed, cur_ans = 1; //~ cout << "@ " << ed << '\n'; while (1) { for (int to = cur - 2; to >= 0; to--) { if (P[cur - 1] - P[to] > max(C[cur], C[to])) { cur = to; //~ cout << "TO " << to << '\n'; cur_ans++; goto next; } } break; next:; } if (cur == 0 || P[cur - 1] > C[cur]) ans = max(ans, cur_ans * 2 - (cur == 0) + (ed + 1 < (int)C.size())); } cout << ans << '\n'; } }

Compilation message (stderr)

mizuyokan2.cpp:30:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   30 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...