結果
問題 | No.77 レンガのピラミッド |
ユーザー |
![]() |
提出日時 | 2018-07-03 19:18:16 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 142 ms / 5,000 ms |
コード長 | 993 bytes |
コンパイル時間 | 2,251 ms |
コンパイル使用メモリ | 77,424 KB |
実行使用メモリ | 48,260 KB |
最終ジャッジ日時 | 2024-07-01 02:00:11 |
合計ジャッジ時間 | 6,478 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
ソースコード
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int A[] = new int[101]; Arrays.fill(A, 0); // 1オリジン for(int i = 1; i <= N; i++) { A[i] = scan.nextInt(); } scan.close(); int sum = 0; for(int i = 1; i <= N; i++) { sum += A[i]; } int n = 1; int cost = 0; for(int i = 1; i < 1000; i++) { if(sum == i * i) { n = i; break; }else if(sum < i * i) { n = i - 1; break; } } //cost = sum - n * n; cost = 0; // System.out.println(n); int l; if(2 * n - 1>= N) { l = N; }else { l = 2 * n - 1; } for(int i = 1; i <= l; i++) { if(i <= n) { if(A[i] >= i) { cost += i; }else { cost += A[i]; } }else { int t = 2 * n - i; if(A[i] >= t) { cost += t; }else { cost += A[i]; } } } int ans = sum - cost; System.out.println(ans); } }