結果
問題 | No.49 算数の宿題 |
ユーザー |
![]() |
提出日時 | 2022-08-27 15:53:02 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 980 bytes |
コンパイル時間 | 2,024 ms |
コンパイル使用メモリ | 147,536 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-23 02:17:05 |
合計ジャッジ時間 | 2,691 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
#define _USE_MATH_DEFINES#include<iostream>#include<vector>#include<algorithm>#include<cmath>#include<string>#include<iomanip>#include<numeric>#include<queue>#include<deque>#include<stack>#include<set>#include<map>#include<random>#include<bitset>#include<cassert>#include<complex>#include<fstream>#include<cstdlib>#include<functional>#include<array>using namespace std;typedef long long ll;const int mod=998244353;const int dx[]={1,1,1,0,0,-1,-1,-1},dy[]={1,0,-1,1,-1,1,0,-1};typedef string::iterator state;int num(state&it){int res=0;while(isdigit(*it)){res=res*10+*it-'0';it++;if(res>10000)res=10001;}return res;}int expr(state&it){int res=num(it);for(;;){if(*it=='*'){it++;res+=num(it);if(res>10000)res=10001;}else if(*it=='+'){it++;res*=num(it);if(res>10000)res=10001;}elsereturn res;}}int main(){string s;cin>>s;s+=';';state it=s.begin();cout<<expr(it)<<endl;}