Submission #1254413

#TimeUsernameProblemLanguageResultExecution timeMemory
1254413onur8ocakAddk (eJOI21_addk)C++20
0 / 100
71 ms2888 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,fma") #define int long long #define F first #define S second #define pb push_back #define endl '\n' #define all(v) v.begin(),v.end() #define gcd(a,b) __gcd(a,b) #define mt make_tuple #define pqueue priority_queue typedef pair<int,int> ii; typedef tuple<int,int,int> iii; typedef tuple<int,int,int,int> iiii; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<string> vs; typedef vector<char> vc; typedef vector<iii> viii; typedef set<int> si; typedef vector<ii> vii; typedef vector<vi> vvi; typedef vector<si> vsi; typedef vector<vb> vvb; typedef vector<vc> vvc; int32_t main(){ int n,s; cin >> n >> s; vi a(n+10); for(int i=1;i<=n;i++) cin >> a[i]; vi pre(n+10,0),suf(n+10,0),pre2(n+10,0),suf2(n+10,0); for(int i=1;i<=n;i++) pre[i]=pre[i-1]+a[i]; for(int i=n;i>=1;i--) suf[i]=suf[i+1]+a[i]; for(int i=1;i<=n;i++){ int val=a[i]; pre2[i]=pre2[i-1]+(i*val); } for(int i=n;i>=1;i--){ int val=a[i]; suf2[i]=suf2[i+1]+((n-i+1)*val); } int q; cin >> q; while(q--){ int k,l,r,mid; cin >> k >> l >> r >> mid; if(k==1) continue; int fark=(r-l)+1; if(mid==1||mid==fark){ cout << pre[r]-pre[l-1] << endl; continue; } int l1,r1,l2,r2,m1,m2,sum=0; if(fark<2*mid-1) mid=(fark+1)-mid; //cout << mid << endl; l1=l; r1=l1+(mid-2); m1=r1+1; r2=r; l2=r2-(mid-2); m2=l2-1; int len = fark - 2 * (mid - 1); /*if (m1 <= m2 && m2 - m1 + 1 >= len) sum += mid * (pre[m1 + len - 1] - pre[m1 - 1]);*/ int sonuc=pre2[r1]-pre2[l1-1]; int tmp=pre[r1]-pre[l1-1]; tmp*=(l1-1); sum+=(sonuc-tmp); //cout << (sonuc-tmp) << endl; sum+=(mid*(pre[m2]-pre[m1-1])); //cout << (mid*(pre[m2]-pre[m1-1])); sonuc=suf2[l2]-suf2[r2+1]; tmp=suf[l2]-suf[r2+1]; tmp*=(n-r2); sum+=(sonuc-tmp); //cout << (sonuc-tmp) << endl; cout << sum << endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...