結果
| 問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-09-16 16:50:01 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 156 ms / 5,000 ms |
| コード長 | 1,729 bytes |
| コンパイル時間 | 5,340 ms |
| コンパイル使用メモリ | 80,472 KB |
| 実行使用メモリ | 41,896 KB |
| 最終ジャッジ日時 | 2024-07-22 16:43:01 |
| 合計ジャッジ時間 | 10,473 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
import java.util.Scanner;
public class Main_yukicoder81 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long decimal = 0;
long intp = 0;
for (int i = 0; i < n; i++) {
String a = sc.next();
int index = a.indexOf('.');
if (index == -1) {
intp += Long.parseLong(a);
} else {
long sign = 1;
if (a.charAt(0) == '-') {
sign = -1;
}
intp += Long.parseLong(a.substring(0, index));
String tmp = a.substring(index + 1);
while (tmp.length() < 10) {
tmp += "0";
}
decimal += sign * Long.parseLong(tmp);
}
}
intp += decimal / 10000000000L;
decimal %= 10000000000L;
if ((intp >= 0 && decimal >= 0)) {
System.out.printf("%d.%010d\n", intp, decimal);
} else if (intp < 0 && decimal < 0) {
System.out.printf("%d.%010d\n", intp, Math.abs(decimal));
} else if (intp == 0 && decimal < 0) {
System.out.printf("-%d.%010d\n", intp, Math.abs(decimal));
} else if (intp > 0 && decimal < 0) {
intp--;
decimal += 10000000000L;
System.out.printf("%d.%010d\n", intp, decimal);
} else if (intp < 0 && decimal > 0) {
intp++;
decimal = 10000000000L - decimal;
if (intp == 0) {
System.out.print('-');
}
System.out.printf("%d.%010d\n", intp, decimal);
} else if (intp < 0 && decimal == 0) {
System.out.printf("%d.%010d\n", intp, decimal);
}
sc.close();
}
}