제출 #1315981

#제출 시각아이디문제언어결과실행 시간메모리
1315981yusifmAddk (eJOI21_addk)C++20
92 / 100
33 ms4336 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #define ll long long #define str string #define pb push_back #define pf push_front #define in insert #define all(v) v.begin(),v.end() const int sz=1000000,INF=1000000000; using namespace std; void solve() { ll n,m,l,num,num1,num2,num3,num4,_,Num,res1,res2,res3,ans; cin>>n>>m; vector<ll>nums,prefs1(n+1,0),prefs2(n+1,0); for(int i=0;i<n;i++) { cin>>num; nums.pb(num); } for(int i=0;i<nums.size();i++) { prefs1[i+1]=prefs1[i]+nums[i],prefs2[i+1]=prefs2[i]+(i+1)*nums[i]; } cin>>l; for(int i=0;i<l;i++) { cin>>num1; if(num1==2) { ans=0; cin>>num2>>num3>>num4; Num=min(num4,num3-num2-num4+2),res1=(prefs2[num2+Num-2]-prefs2[num2-1])-(num2-1)*(prefs1[num2+Num-2]-prefs1[num2-1]),res2=Num*(prefs1[num3]-prefs1[num3-Num+1])-((prefs2[num3]-prefs2[num3-Num+1])-(num3-Num+1)*(prefs1[num3]-prefs1[num3-Num+1])),res3=Num*(prefs1[num3-Num+1]-prefs1[num2+Num-2]),ans=res1+res2+res3; cout<<ans<<"\n"; } else { cin>>_; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr),cout.tie(nullptr); ll t=1; //cin>>t; while(t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...