結果
問題 | No.77 レンガのピラミッド |
ユーザー |
![]() |
提出日時 | 2014-11-26 14:05:14 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 135 ms / 5,000 ms |
コード長 | 966 bytes |
コンパイル時間 | 2,710 ms |
コンパイル使用メモリ | 79,616 KB |
実行使用メモリ | 41,984 KB |
最終ジャッジ日時 | 2025-01-03 08:55:19 |
合計ジャッジ時間 | 6,649 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
ソースコード
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int ans=Integer.MAX_VALUE; int[] block = new int[101]; int motokazu=0; for(int i=0;i<n;i++){ int temp=sc.nextInt(); motokazu+=temp; block[i]=temp; } for(int i=1;;i++){ int[] pira = new int[1000]; int kazu=0; for(int j=0;;){ for(int k=1;k<=i;k++){ kazu+=k; pira[j]=k; j++; } for(int l=i-1;l>0;l--){ kazu+=l; pira[j]=l; j++; } break; } if(motokazu<kazu) break;; int dai=0; int syou=0; for(int j=0;j<101;j++){ if(block[j]>pira[j]){ dai+=block[j]-pira[j]; }else if(block[j]<pira[j]){ syou+=pira[j]-block[j]; } } if(dai==syou){ ans=Math.min(ans, dai); } if(dai>syou){ ans=Math.min(ans, dai); } } System.out.println(ans); } }