Submission #57068763


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n) for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second
constexpr int N = 1e5+5;
int n,m;
ll a[N],b[N];
ll mx[N<<1],su[N<<1];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
using namespace std;

using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n)  for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second

constexpr int N = 1e5+5;

int n,m;
ll a[N],b[N];

ll mx[N<<1],su[N<<1];

void upd(int u,int L,int R,int x){
    if(L==R){mx[u]=b[L],su[u]=a[L];return;}
    int M=L+R>>1,ls=M<<1,rs=M<<1|1;
    if(x<=M)upd(ls,L,M,x);else upd(rs,M+1,R,x);
    mx[u]=max(mx[ls],mx[rs]),su[u]=su[ls]+su[rs];
}

signed main(){
    // freopen(".in","r",stdin);
    // freopen(".out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin>>n;
    rep(i,1,n)cin>>a[i];
    rep(i,1,n)cin>>b[i],upd(1,1,n,i);
    cin>>m;
    while(m--){
        int op;cin>>op;
        if(op==1){int x;cin>>x,cin>>a[x];upd(1,1,n,x);}
        if(op==2){int x;cin>>x,cin>>b[x];upd(1,1,n,x);}
        if(op==3){
            int l,r;cin>>l>>r;
            ll v=0;
            auto dfs=[&](auto &&self,int u,int L,int R)->void{
                if(r<L||R<l)return;
                if(L==R){v=max(v+a[L],v*b[L]);return;}
                if(l<=L&&R<=r&&mx[u]==1){v+=su[u];return;}
                int M=L+R>>1,ls=M<<1,rs=M<<1|1;
                self(self,ls,L,M),self(self,rs,M+1,R);
            };dfs(dfs,1,1,n);
            cout<<v<<'\n';
        }
    }
}

Submission Info

Submission Time
Task G - Add and Multiply Queries
User KnownError_
Language C++ 20 (gcc 12.2)
Score 575
Code Size 1565 Byte
Status AC
Exec Time 193 ms
Memory 8300 KB

Compile Error

Main.cpp: In function ‘void upd(int, int, int, int)’:
Main.cpp:25:12: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
   25 |     int M=L+R>>1,ls=M<<1,rs=M<<1|1;
      |           ~^~
Main.cpp: In instantiation of ‘main()::<lambda(auto:53&&, int, int, int)> [with auto:53 = main()::<lambda(auto:53&&, int, int, int)>&]’:
Main.cpp:53:18:   required from here
Main.cpp:51:24: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
   51 |                 int M=L+R>>1,ls=M<<1,rs=M<<1|1;
      |                       ~^~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 575 / 575
Status
AC × 2
AC × 41
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_internal_00.txt, 01_internal_01.txt, 01_internal_02.txt, 01_internal_03.txt, 01_internal_04.txt, 01_internal_05.txt, 01_internal_06.txt, 01_internal_07.txt, 01_internal_08.txt, 01_internal_09.txt, 01_internal_10.txt, 01_internal_11.txt, 01_internal_12.txt, 01_internal_13.txt, 01_internal_14.txt, 01_internal_15.txt, 01_internal_16.txt, 01_internal_17.txt, 01_internal_18.txt, 01_internal_19.txt, 01_internal_20.txt, 01_internal_21.txt, 01_internal_22.txt, 01_internal_23.txt, 01_internal_24.txt, 01_internal_25.txt, 01_internal_26.txt, 01_internal_27.txt, 01_internal_28.txt, 01_internal_29.txt, 01_internal_30.txt, 01_internal_31.txt, 01_internal_32.txt, 01_internal_33.txt, 01_internal_34.txt, 01_internal_35.txt, 01_internal_36.txt, 01_internal_37.txt, 01_internal_38.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3476 KB
00_sample_01.txt AC 1 ms 3548 KB
01_internal_00.txt AC 31 ms 4612 KB
01_internal_01.txt AC 24 ms 3648 KB
01_internal_02.txt AC 104 ms 8140 KB
01_internal_03.txt AC 104 ms 8276 KB
01_internal_04.txt AC 104 ms 8176 KB
01_internal_05.txt AC 106 ms 8140 KB
01_internal_06.txt AC 107 ms 8112 KB
01_internal_07.txt AC 105 ms 8108 KB
01_internal_08.txt AC 108 ms 8160 KB
01_internal_09.txt AC 106 ms 8224 KB
01_internal_10.txt AC 108 ms 8224 KB
01_internal_11.txt AC 104 ms 8228 KB
01_internal_12.txt AC 50 ms 8096 KB
01_internal_13.txt AC 51 ms 8156 KB
01_internal_14.txt AC 50 ms 8228 KB
01_internal_15.txt AC 50 ms 8212 KB
01_internal_16.txt AC 50 ms 8168 KB
01_internal_17.txt AC 50 ms 8104 KB
01_internal_18.txt AC 90 ms 8160 KB
01_internal_19.txt AC 91 ms 8220 KB
01_internal_20.txt AC 92 ms 8144 KB
01_internal_21.txt AC 90 ms 8084 KB
01_internal_22.txt AC 88 ms 8228 KB
01_internal_23.txt AC 91 ms 8228 KB
01_internal_24.txt AC 92 ms 8168 KB
01_internal_25.txt AC 91 ms 8156 KB
01_internal_26.txt AC 92 ms 8144 KB
01_internal_27.txt AC 91 ms 8112 KB
01_internal_28.txt AC 193 ms 8228 KB
01_internal_29.txt AC 107 ms 8228 KB
01_internal_30.txt AC 104 ms 8220 KB
01_internal_31.txt AC 105 ms 8300 KB
01_internal_32.txt AC 105 ms 8168 KB
01_internal_33.txt AC 103 ms 8168 KB
01_internal_34.txt AC 106 ms 8172 KB
01_internal_35.txt AC 104 ms 8092 KB
01_internal_36.txt AC 107 ms 8228 KB
01_internal_37.txt AC 106 ms 8164 KB
01_internal_38.txt AC 105 ms 8156 KB


2025-03-18 (Tue)
16:33:55 +00:00