結果

問題 No.1687 What the Heck?
コンテスト
ユーザー merlin
提出日時 2021-09-24 21:38:21
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
WA  
実行時間 -
コード長 820 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,825 ms
コンパイル使用メモリ 83,164 KB
実行使用メモリ 77,484 KB
最終ジャッジ日時 2026-03-26 17:15:29
合計ジャッジ時間 7,968 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 14 WA * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.io.*;
import java.util.*;

class Main
{
    public static void main(String args[])throws Exception
    {
        BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb=new StringBuilder();
        int n=Integer.parseInt(bu.readLine());
        int a[]=new int[n],b,i; long ans=0;
        String s[]=bu.readLine().split(" ");
        TreeSet<Integer> ts=new TreeSet<>();
        for(i=0;i<n;i++)
        {
            a[i]=Integer.parseInt(s[i]);
            ts.add(i+1);
        }

        for(i=n-1;i>=0;i--)
        if(ts.higher(a[i])!=null)
        {
            int del=ts.higher(a[i]);
            ts.remove(del);
            ans+=i+1;
        }
        else if(ts.contains(a[i])) ts.remove(a[i]);
        else ans-=i+1;
        System.out.println(ans);
    }
}
0