結果
問題 | No.49 算数の宿題 |
ユーザー |
![]() |
提出日時 | 2016-07-17 22:47:46 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,291 bytes |
コンパイル時間 | 849 ms |
コンパイル使用メモリ | 66,256 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-23 01:52:42 |
合計ジャッジ時間 | 1,462 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
#include <iostream>#include <algorithm>#include <vector>#include <cstring>#include <cstdio>#include <cmath>using namespace std;int main(void){string s; cin >> s;long long ans = 0;int memo = 0;//0 = (*) 1 = (+)for (int l = 0; l < s.size(); ++l){double cnt = -1;int now = 0;int r;for (r = l; r < s.size(); ++r){if(s[r] == '*' || r == s.size() - 1){if(r != s.size() - 1){for (int i = l; i < r; ++i){now += (s[i] - '0') * pow(10, cnt);cnt--;}}else{for (int i = l; i <= r; ++i){now += (s[i] - '0') * pow(10, cnt + 1);cnt--;}}if(memo == 0) ans += now;else ans *= now;// printf("1 %d %d %d %lld\n", l, r, now, ans);memo = 0;break;}else if(s[r] == '+' || r == s.size() - 1){if(r != s.size() - 1){for (int i = l; i < r; ++i){now += (s[i] - '0') * pow(10, cnt);cnt--;}}else{for (int i = l; i <= r; ++i){now += (s[i] - '0') * pow(10, cnt + 1);cnt--;}}if(memo == 0) ans += now;else ans *= now;// printf("2 %d %d %d %lld\n", l, r, now, ans);memo = 1;break;}cnt++;}// printf("r:%d\n", r);l = r;// printf("lsaigo:%d\n", l);}printf("%lld\n", ans);return 0;}