Submission #550659

#TimeUsernameProblemLanguageResultExecution timeMemory
550659BalintRFish 2 (JOI22_fish2)C++17
5 / 100
4049 ms1484 KiB
#include <bits/stdc++.h>
using namespace std;

typedef unsigned uint;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<pii> vpii;
typedef complex<double> cmplx;
template <typename T> using minPq = priority_queue<T, vector<T>, greater<T>>;
#define boost() cin.sync_with_stdio(0); cin.tie(0)
#define ms(a, x) memset(a, x, sizeof(a))
#define pb push_back
#define fs first
#define sn second
#define ALL(v) (v).begin(), (v).end()
#define SZ(v) ((int) (v).size())
#define lbv(v, x) (lower_bound((v).begin(), (v).end(), x) - (v).begin())
#define ubv(v, x) (upper_bound((v).begin(), (v).end(), x) - (v).begin())
template <typename T> inline void UNIQUE(vector<T> &v){sort(ALL(v)); v.resize(unique(ALL(v)) - v.begin());}
const int INF = 0x3f3f3f3f;
const ll LLINF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1);
#define FR(i, n) for(int i = 0; i < (n); i++)
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define FORR(i, a, b) for(int i = (a); i >= (b); i--)
#define dbg(x) {cout << #x << ' ' << x << endl;}
#define dbgArr(arr, n) {cout << #arr; FR(_i, n) cout << ' ' << arr[_i]; cout << endl;}

const ll BIG = 1e16;
const int MN = 1e5 + 5;
int n, q;
int arr[MN];

int main(){
    boost();
    cin >> n;
    FR(i, n) cin >> arr[i];
    cin >> q;
    while(q--){
        int type, l, r;
        cin >> type >> l >> r;
        l--;

        if(type == 1) arr[l] = r;
        else {
            int cnt = 0;
            FOR(i, l, r){
                int a = i, b = i;
                ll sum = arr[i];

                while(a > l || b < r-1){
                    if(a > l && sum >= arr[a-1]) sum += arr[--a];
                    else if(b < r-1 && sum >= arr[b+1]) sum += arr[++b];
                    else goto loopEnd;
                }
                cnt++;
                loopEnd:;
            }
            cout << cnt << '\n';
        }
    }
}
#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...