結果
問題 | No.81 すべて足すだけの簡単なお仕事です。 |
ユーザー |
![]() |
提出日時 | 2020-02-08 20:59:34 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,254 bytes |
コンパイル時間 | 2,159 ms |
コンパイル使用メモリ | 198,440 KB |
最終ジャッジ日時 | 2025-01-08 23:14:25 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 WA * 17 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;using PII = std::pair<int, int>;using PLL = std::pair<ll, ll>;#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define rep2(i, s, n) for (int i = (s); i < (int)(n); i++)void printans(string ans[], int h, int w, int s){if (!s){rep(i, h){cout << ans[i] << endl;}}else{rep(i, w){rep(j, h){cout << ans[j][i];}cout << endl;}}}int main(){#ifdef DEBUGcout << "DEBUG MODE" << endl;ifstream in("input.txt"); //for debugcin.rdbuf(in.rdbuf()); //for debug#endifint n, sign, dot;cin >> n;ll ansd, ansf;string s, sd, sf;ansd = ansf = 0;rep(i, n){sign = 0, dot = 0;cin >> s;if (s[0] == '-')sign = 1;rep(i, s.length()){if (s[i] == '.'){dot = i;break;}}if (!dot){if (sign)ansd -= stoll(s.substr(sign, (s.length() - sign)));elseansd += stoll(s.substr(sign, (s.length() - sign)));}else{if (sign)ansd -= stoll(s.substr(sign, (dot - sign)));elseansd += stoll(s.substr(sign, (dot - sign)));sf = s.substr(dot + 1, (s.length() - dot - 1));rep(i, 10)sf += '0';sf = sf.substr(0, 10);if (sign)ansf -= stoll(sf);elseansf += stoll(sf);}}ansd += ansf / 10000000000ll;if (ansd < 0 && ansf > 0){ansf = abs(100000000000ll - ansf);ansd++;}ansf %= 10000000000ll;if (ansf == 0)sf = "0";else{sf = "";while (ansf){sf += '0' + (ansf % 10);ansf /= 10;}}reverse(sf.begin(), sf.end());rep(i, 10)sf += '0';sf = sf.substr(0, 10);cout << ansd << "." << sf << endl;return 0;}