結果
問題 | No.1681 +-* |
ユーザー |
![]() |
提出日時 | 2021-09-17 22:23:54 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 324 ms / 2,000 ms |
コード長 | 875 bytes |
コンパイル時間 | 1,765 ms |
コンパイル使用メモリ | 77,080 KB |
実行使用メモリ | 71,480 KB |
最終ジャッジ日時 | 2024-06-29 21:01:58 |
合計ジャッジ時間 | 6,774 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
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()); String s[]=bu.readLine().split(" "); int a[]=new int[n],i; for(i=0;i<n;i++) a[i]=Integer.parseInt(s[i]); long p[]=new long[n+1],M=(int)1e9+7; p[0]=1; for(i=1;i<=n;i++) p[i]=p[i-1]*3%M; long ans=0,psum=1,cur; for(i=0;i<n;i++) { cur=psum*a[i]%M; //System.out.print(cur+" "+(p[n-2-i]*2%M)+" "); if(i!=n-1) cur=cur*p[n-2-i]%M*2%M; ans=(ans+cur)%M; //System.out.println(cur); psum=psum*a[i]%M; } System.out.println(ans); } }