結果

問題 No.696 square1001 and Permutation 5
コンテスト
ユーザー beet
提出日時 2018-06-08 23:57:14
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
AC  
実行時間 9,677 ms / 10,000 ms
コード長 791 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,684 ms
コンパイル使用メモリ 82,660 KB
実行使用メモリ 89,832 KB
最終ジャッジ日時 2026-03-20 10:25:55
合計ジャッジ時間 39,630 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.*;
import java.lang.*;
import java.math.*;

public class Main {
    int n;
    int[] bit;
    int sum(int i){
	int s=bit[0];
	for(int x=i;x>0;x-=(x&-x))
	    s+=bit[x];
	return s;
    }
    void add(int i,int a){
	if(i==0) return;
	for(int x=i;x<=n;x+=(x&-x))
	    bit[x]+=a;
    }

    void run(){
	Scanner cin = new Scanner(System.in);
	n = cin.nextInt();
	int[] p = new int[n];
	for(int i=0;i<n;i++) p[i]=cin.nextInt();    
	
	bit = new int[n+100];
	
	BigInteger ans = BigInteger.ONE, x = BigInteger.ONE;
	for(int i=1;i<=n;i++){
	    ans = ans.add(x.multiply(BigInteger.valueOf(sum(p[n-i]))));
	    add(p[n-i], 1);
	    x = x.multiply(BigInteger.valueOf(i));
	}
	System.out.println(ans);
    }
    
    public static void main(String[] args) {
	new Main().run();
    }
}
0