結果
問題 | No.77 レンガのピラミッド |
ユーザー |
![]() |
提出日時 | 2016-02-29 02:19:08 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 146 ms / 5,000 ms |
コード長 | 1,625 bytes |
コンパイル時間 | 2,843 ms |
コンパイル使用メモリ | 79,040 KB |
実行使用メモリ | 54,392 KB |
最終ジャッジ日時 | 2024-09-24 12:35:18 |
合計ジャッジ時間 | 7,355 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 20 |
ソースコード
import java.util.ArrayList;import java.util.Scanner;public class Main {public static void main(String[] args) {try (Scanner scan = new Scanner(System.in)) {int N = scan.nextInt();ArrayList<Integer> list = new ArrayList<>();ArrayList<Integer> ansList = new ArrayList<>();int sum = 0;for(int i=0; i<N; i++) {list.add(scan.nextInt());sum += list.get(i);}int sqrtSum = (int)Math.sqrt(sum);sum = sqrtSum * sqrtSum;int mid = sum/2;int value = 1;while(sum > 0) {ansList.add(value);sum -= value;if(sum < mid) {value--;} else {value++;}}if(list.size() > ansList.size()) {int num = list.size() - ansList.size();for(int i=0; i<num; i++) {ansList.add(0);}} else if(list.size() < ansList.size()) {int num = ansList.size() - list.size();for(int i=0; i<num; i++) {list.add(0);}}int ans = 0;for(int i=0; i<list.size(); i++) {int diff = list.get(i) - ansList.get(i);if(diff > 0) {ans += diff;}}System.out.println(ans);}}}