为什么运行结果的和一直为零?

#include<stdio.h>
int main()
{
    int n,m,p,x,y,a[10089],sum=0,i,t=-800;
        scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<m;i++)
        scanf("%d%d%d",&p,&x,&y);
    if(p==1)
    {a[x-1]=a[y-1];}
    if(p==2)
    {for(i=x-1;i<y-1;i++)
    sum=sum+a[i];
    }printf("%d\n",sum);
    
    if(p==3)
    {for(i=x-1;i<y-1;i++)
    {if(a[i]<t)
          t=t;
    else t=a[i];}
    }printf("%d\n",t);
return 0;}
    
 

#include<stdio.h>
int main()
{
    int n,m,p,x,y,a[10089],sum=0,i,t=-800;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<m;i++)  //无意义,我想可能是缺少了{
        scanf("%d%d%d",&p,&x,&y);
    if(p==1)
    {
        a[x-1]=a[y-1];
    }
    if(p==2)
    {
        for(i=x-1;i<y-1;i++)
            sum=sum+a[i];
    }
    printf("%d\n",sum);
    
    if(p==3)
    {
        for(i=x-1;i<y-1;i++)
        {
            if(a[i]<t)
              t=t;
            else 
                t=a[i];
        }
    }
    printf("%d\n",t);
    return 0;
}

 看的累,帮你排好版了,没明白这段代码是要实现什么