結果
問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
ユーザー |
|
提出日時 | 2017-07-22 15:44:41 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,710 bytes |
コンパイル時間 | 608 ms |
コンパイル使用メモリ | 66,944 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-09 09:53:56 |
合計ジャッジ時間 | 2,817 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 17 RE * 13 |
ソースコード
#include <iostream> using namespace std; using ll = long long; constexpr ll OFFSET = 1e10; int main() { int N; cin >> N; ll sum = 0; for (int n = 0; n < N; n++) { string s; cin >> s; string st[2]; int ind = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == '-') { st[0].push_back('-'); st[1].push_back('-'); continue; } if (s[i] == '.') { ind = 1; continue; } st[ind].push_back(s[i]); } ll integer = 0; ll floating = 0; integer = stoll(st[0]); if (not st[1].empty()) { const int size = (st[1][0] == '-') ? st[1].size() - 1 : st[1].size(); for (int i = 0; i < 10 - size; i++) { st[1].push_back('0'); } string ss; bool start = false; for (int i = 0; i < st[1].size(); i++) { if (st[1][i] == '0' and (not start)) { continue; } start = true; ss.push_back(st[1][i]); } floating = stoll(ss); } else { floating = 0; } cout << integer << " " << floating << endl; sum += integer * OFFSET + floating; } const ll integer = sum / OFFSET; cout << integer << "."; const ll floating = sum % OFFSET; ll num = floating; char s[10]; for (int i = 0; i < 10; i++) { s[9 - i] = '0' + num % 10; num /= 10; } for (int i = 0; i < 10; i++) { cout << s[i]; } cout << endl; return 0; }