結果
| 問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-11-03 15:02:55 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,282 bytes |
| コンパイル時間 | 3,798 ms |
| コンパイル使用メモリ | 70,448 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-22 16:43:16 |
| 合計ジャッジ時間 | 1,697 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
#include<iostream>
#include<iomanip>
using namespace std;
typedef long long ll;
int main(){
int n;
cin >> n;
ll a = 0, b = 0;
string s;
ll base = 10000000000;
for(int i = 0; i < n; i++){
cin >> s;
ll tmpa = 0, tmpb = 0;
int pos = 0;
int bias = 1;
if(s[pos] == '-') bias = -1, pos++;
while(pos < s.length() && s[pos] != '.'){
tmpa = tmpa*10 + s[pos]-'0';
pos++;
}
pos++;
int keta = 0;
while(pos < s.length()){
tmpb = tmpb*10 + s[pos]-'0';
pos++;
keta++;
}
while(keta < 10){
tmpb *= 10;
keta++;
}
a += tmpa * bias;
b += tmpb * bias;
}
a += b/base;
if(b < 0) b -= b/base*base;
if(b < 0) b += base, a--;
b %= base;
if(a < 0){
if(b > 0){
b = base-b;
a++;
if(a == 0) cout << "-";
}
b = abs(b);
cout << a << "." << setw(10) << right << setfill('0') << b << endl;
}else{
if(b < 0){
b += base;
a--;
}
cout << a << "." << setw(10) << right << setfill('0') << b << endl;
}
return 0;
}