csp除算java(タイムアウト80分==)
1200 ワード
201709-5試験問題名:除法時間制限:10.0 sメモリ制限:256.0 MB問題説明:問題記述ネギは除法が好きなので、彼はあなたにN個の数a 1,a 2,⋯,aNをあげて、そしてあなたがM回の操作を実行することを望んで、毎回操作するのは以下の2種類があるかもしれません:あなたに3つの数l,r,vをあげて、あなたはal,al+1,⋯,arの間のすべてのvの倍数をvで割る必要があります.l,rを2つあげます.al+al+1+⋯+arの値はいくらですか.フォーマットの最初の行の2つの整数N,Mを入力し、数の個数と操作の回数を表します.次の行のN個の整数は、N個の数の最初の値を表す.次にM行、各行は順次動作を表す.行ごとに整数optが始まります.opt=1の場合、次に3つの数l,r,vがあり、今回の操作を表すには、l番目の数からr番目の数までのvの倍数をvで割る必要がある.opt=2の場合、次に2つの数l,rがあり、l番目からr番目の数の和に答える必要があることを表します.出力フォーマットは、毎回の2番目の操作について、今回の操作で尋ねられた値を表す行を出力します.サンプル入力5 3 1 2 3 4 4 5 1 1 1 3 2 1 5サンプル出力15 14評価用例規模と約束30%評価用例、1≦N、M≦1000;他の20%の評価例では、第1の操作には必ずl=rがある.他の20%の評価例では、第1の操作には必ずl=1、r=Nがある.100%の評価例について、1≦N、M≦105、0≦a 1、a 2、⋯、aN≦106、1≦v≦106、1≦l≦r≦Nであった.
import java.util.*;
public class Main
{
static Scanner scanner=new Scanner(System.in);
static void chufa() {
int n=scanner.nextInt();
int[] x=new int[n+1];
int m=scanner.nextInt();
long[] z=new long[m];
int[] y=new int[3];
long sum=0;
for(int i=0;i