#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,d,m,syl[500]={0},jyl[500][500]={0}; 
    cin>>n>>d;
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>syl[i];
    }
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        if(x==1)
        {
            int s,e,l,id;
            cin>>s>>e>>l>>id;
            for(int j=s;j<=e;j++) 
            {
                jyl[id][j]=l;
            }
            int kl=l,zz=s;
            while(kl&&zz>=1)
            {
                zz--;
                kl-=d;
                jyl[id][zz]+=kl;
            }
            kl=l;
            zz=e;
            while(kl&&zz<=m)
            {
                zz++;
                kl-=d;
                jyl[id][zz]+=kl;
            }
        }
        if(x==0)
        {
			int id;
			cin>>id;
			for(int j=1;j<=m;j++)
			{
				jyl[id][j]={0};
			}
        }
        if(x==2)
        {
        	int xl,zh=0;
        	cin>>xl;
        	zh+=syl[xl];
        	for(int j=1;j<=m;j++)
        	{
        		zh+=jyl[j][xl];
			}
			cout<<zh<<endl;
		}
    }
    return 0;
}

1 条评论

  • @ 2026-6-4 8:06:51

    RE是运行时错误。数组开大不会RE,而且这个大小也不会报错。大概率是哪里数组越界了。

    • @ 2026-6-9 21:10:58

      怎么做!!!大佬能教一下吗?

  • 1

信息

ID
37
时间
ms
内存
MiB
难度
4
标签
递交数
34
已通过
1
上传者