#include <iostream>
using namespace std;
int N, K, Q, z, n, nuo, iki, sek, ats = 0, sum = 0;
int m[1000005];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N >> K;
for(int a = 0; a < N; a++)
{
cin >> m[a];
}
cin >> Q;
for(int a = 0; a < Q; a++)
{
cin >> z;
if(z == 1)
{
cin >> n;
n--;
int buv = n, p = m[n];
for(int b = 1; b < K; b++)
{
cin >> n;
n--;
m[buv] = m[n];
buv = n;
}
m[buv] = p;
}
if(z == 2)
{
cin >> nuo >> iki >> sek;
nuo--;
iki--;
int pr = 0;
sum = 0;
for(int b = nuo; b <= iki; b++)
{
sum+= m[b];
if(nuo == 0 && b + 1 >= sek)
{
ats += sum - pr;
pr += m[b - sek + nuo + 1];
// cout << "pr = " << pr << ", b - sek + nuo + 1 = " << b - sek + nuo + 1 << ", m[b - sek + nuo + 1] = " << m[b - sek + nuo + 1] << '\n';
}
else if((b - min(nuo, iki) + 1 >= sek) || (sek == 1 && nuo == iki))
{
ats += sum - pr;
pr += m[b - sek + nuo];
}
// cout << "min(nuo, iki) = " << min(nuo, iki) << ", b = " << b << ", m[b] = " << m[b] << ", sum = " << sum << ", pr = " << pr << ", ats = " << ats << '\n';
}
cout << ats << '\n';
ats = 0;
}
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
497 ms |
592 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1934 ms |
1180 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |