StreamToken输入输出挂,读取到文件结束
作者:互联网
package k;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Scanner;
public class Main{
private static int arr[]=new int[200010];
private static int tree[]=new int[200010*5];
private static int N,M;
public static void main(String[] args) throws IOException{
StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));
while(in.nextToken() != StreamTokenizer.TT_EOF){
//in.nextToken();
N=(int)in.nval;
in.nextToken();
M=(int)in.nval;
for(int i=1;i<=N;i++){
in.nextToken();
arr[i]=(int)in.nval;
}
build(arr,tree,1,1,N);
for(int i=1;i<=M;i++){
in.nextToken();
String t=in.sval;
in.nextToken();
int a=(int)in.nval;
in.nextToken();
int b=(int)in.nval;
if(t.equals("Q")){
out.println(query(arr,tree,1,1,N,a,b));
}else{
update(arr,tree,1,1,N,a,b);
}
}
}
out.flush();
}
public static void build(int arr[],int tree[],int node,int start,int end){
if(start==end){
tree[node]=arr[end];
return;
}
int mid=(start+end)/2;
int lnode=node*2;
int rnode=node*2+1;
build(arr,tree,lnode,start,mid);
build(arr,tree,rnode,mid+1,end);
tree[node]=Math.max(tree[lnode], tree[rnode]);
}
public static void update(int arr[],int tree[],int node,int start,int end,int idx,int val){
if(start==end){
arr[idx]=val;
tree[node]=val;
return;
}
int mid=(start+end)/2;
int lnode=node*2;
int rnode=node*2+1;
if(idx<=mid){
update(arr,tree,lnode,start,mid,idx,val);
}else{
update(arr,tree,rnode,mid+1,end,idx,val);
}
tree[node]=Math.max(tree[lnode],tree[rnode]);
}
public static int query(int arr[],int tree[],int node,int start,int end,int L,int R){
if(end<L||start>R){
return Integer.MIN_VALUE;
}
if(L<=start&&R>=end){
return tree[node];
}
int mid=(start+end)/2;
int lnode=node*2;
int rnode=node*2+1;
int l=query(arr,tree,lnode,start,mid,L,R);
int r=query(arr,tree,rnode,mid+1,end,L,R);
return Math.max(l, r);
}
}
得意霄尽欢
发布了36 篇原创文章 · 获赞 1 · 访问量 657
私信
关注
标签:StreamTokenizer,java,读取,int,输入输出,io,new,import,StreamToken 来源: https://blog.csdn.net/qq_44784918/article/details/103953432