用最笨的方法,拿到第五题的80分,我是想不到的
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class Main{
private static String[] s;
static int N = 100010;
static int a[] = new int[N];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
s = br.readLine().split(" ");
int n = Integer.parseInt(s[0]);
int m = Integer.parseInt(s[1]);
s = br.readLine().split(" ");
for(int i = 1 ; i <= n ; i++) {
a[i] = Integer.parseInt(s[i-1]);
}
while(m-->0) {
s = br.readLine().split(" ");
int x = Integer.parseInt(s[0]);
if(x==1) {
int l = Integer.parseInt(s[1]);
int r = Integer.parseInt(s[2]);
int v = Integer.parseInt(s[3]);
process(l,r,v);
}else {
int l = Integer.parseInt(s[1]);
int r = Integer.parseInt(s[2]);
long sum = 0;
for(int i = l; i <=r;i ++) {
sum+=a[i];
}
bw.write(sum+"\n");
}
}
bw.flush();
}
private static void process(int l, int r, int v) {
for(int i = l; i <=r;i ++) {
if(a[i]%v==0) {
a[i] /=v;
}
}
}
}
网友评论