結果

問題 No.696 square1001 and Permutation 5
ユーザー beet
提出日時 2018-06-08 23:57:14
言語 Java
(openjdk 23)
結果
TLE  
実行時間 -
コード長 791 bytes
コンパイル時間 2,399 ms
コンパイル使用メモリ 77,088 KB
実行使用メモリ 77,764 KB
最終ジャッジ日時 2024-06-30 11:23:44
合計ジャッジ時間 42,976 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 10 TLE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

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