这个是不是只有cpp才能a啊
查看原帖
这个是不是只有cpp才能a啊
533856
NuclearBomb楼主2022/9/29 15:18

是不是只有cpp才能过啊,开gc超时,不开又爆内存

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
class sta{
    int [] arr;
    int i=0;

    sta(int n){
        arr=new int[n];
    }
    int get(){
        return arr[i-1];
    }
    boolean isEmpty(){
        return i==0;
    }
    void remove(){
        i--;
    }
    void add(int n){
        arr[i]=n;
        i++;
    }
}
class Main{
    public static void main(String[] args) throws IOException {
        StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        st.nextToken();
        int n= ((int) st.nval);
        int [] arr=new int[n];
        int [] rtu=new int[n];
        for (int i = 0; i < n; i++) {
            st.nextToken();
            arr[i]=(int)st.nval;
        }
        sta list =new sta(n);
        for (int i = n-1; i >= 0; i--) {
            while (true){
                if(list.isEmpty()){
                    rtu[i]=-1;
                    list.add(i);
                    break;
                }else if(arr[list.get()]<=arr[i]){
                    list.remove();
                }else {
                    rtu[i]= list.get();
                    list.add(i);
                    break;
                }
            }
        }
        for (int i : rtu) {
            System.out.print(i+1+" ");
        }
    }
}
2022/9/29 15:18
加载中...