差分_java

复制代码
import java.util.*;

public class Main{
    private static int N=100010;
    private static int[] res=new int[N];
    private static int[] temp=new int[N];
    
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int m=in.nextInt();
        for(int i=1;i<=n;i++){
            res[i]=in.nextInt();
            insert(i,i,res[i]);
        }
        while(m-->0){
            int l=in.nextInt(), r=in.nextInt(), c=in.nextInt();
            insert(l,r,c);
        }
        for(int i=1;i<=n;i++){
            temp[i]+=temp[i-1];
            System.out.printf("%d ",temp[i]);
        }
    }
    
    public static void insert(int l,int r,int c){
        temp[l]+=c;
        temp[r+1]-=c;
    }
}
复制代码

 

posted @   苏子你得风驰电掣  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示