1 条题解

  • 0
    @ 2025-5-8 22:00:07

    蓝桥云课AC JAVA代码:

    import java.util.*;
    import java.util.StringTokenizer;
    import java.io.*;
    
    public class Main {
    
    	public static void main(String[] args) {
    		int n=in.nextInt();
    		int m=in.nextInt();
    		int[] arr=new int[n+10];//原始数组
    		int[] b=new int[n+10];//差分数组
    		//数据读入
    		for(int i=1;i<=n;i++){
    			arr[i]=in.nextInt();
    			b[i]=arr[i]-arr[i-1];
    		}
    
    		while(m-->0){
    			int l=in.nextInt();
    			int r=in.nextInt();
    			int d=in.nextInt();
    			b[l]+=d;
    			b[r+1]-=d;
    		}
    		
    		//还原数组
    		for(int i=1;i<=n;i++){
    			arr[i]=arr[i-1]+b[i];
    			out.print(arr[i]+" ");
    		}
             out.close();
    	}
    	
    	
    
    	static FastReader in=new FastReader();
    	static PrintWriter out=new PrintWriter(System.out);
    	static class FastReader{
    		static BufferedReader br;
    		static StringTokenizer st;
    		FastReader(){
    			br=new BufferedReader(new InputStreamReader(System.in));
    		}
    		String next() {
    			String str="";
    			while(st==null||!st.hasMoreElements()) {
    				try {
    					str=br.readLine();
    				}catch(IOException e) {
    					throw new RuntimeException(e);
    				}
    				st=new StringTokenizer(str);
    			}
    			return st.nextToken();
    		}
    		int nextInt() {
    			return Integer.parseInt(next());
    		}
    		double nextDouble() {
    			return Double.parseDouble(next());
    		}
    		long nextLong() {
    			return Long.parseLong(next());
    		}
    	}
    	
    }
    
    
    • 1

    信息

    ID
    22
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    143
    已通过
    43
    上传者