結果
| 問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
| コンテスト | |
| ユーザー |
tnakao0123
|
| 提出日時 | 2016-03-10 22:25:29 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,592 bytes |
| コンパイル時間 | 787 ms |
| コンパイル使用メモリ | 86,424 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-22 16:32:00 |
| 合計ジャッジ時間 | 1,745 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
/* -*- coding: utf-8 -*-
*
* 81.cc: No.81 すべて足すだけの簡単なお仕事です。 - yukicoder
*/
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<list>
#include<queue>
#include<deque>
#include<algorithm>
#include<numeric>
#include<utility>
#include<complex>
#include<functional>
using namespace std;
/* constant */
/* typedef */
typedef long long ll;
/* global variables */
/* subroutines */
/* main */
int main() {
int n;
cin >> n;
ll sumi = 0, sumf = 0;
for (int i = 0; i < n; i++) {
string s;
cin >> s;
ll ii = 0, fi = 0;
int sign = 1, pos = 0;
if (pos < s.size() && s[pos] == '-')
sign = -1, pos++;
while (pos < s.size() && s[pos] != '.')
ii = ii * 10 + s[pos++] - '0';
if (pos < s.size() && s[pos] == '.') {
pos++;
int j = 0;
while (pos < s.size())
fi = fi * 10 + s[pos++] - '0', j++;
while (j < 10) fi *= 10, j++;
}
//printf("%c%lld.%010lld\n", (sign < 0) ? '-' : ' ', ii, fi);
if (sign > 0) sumi += ii, sumf += fi;
else sumi -= ii, sumf -= fi;
if (sumf < 0)
sumf += 10000000000LL, sumi--;
else if (sumf >= 10000000000LL)
sumf -= 10000000000LL, sumi++;
}
if (sumi >= 0)
printf("%lld.%010lld\n", sumi, sumf);
else {
//printf("sumi=%lld, sumf=%lld\n", sumi, sumf);
if (sumf > 0) {
sumf = 10000000000LL - sumf;
sumi++;
}
printf("-%lld.%010lld\n", abs(sumi), sumf);
}
return 0;
}
tnakao0123