結果

問題 No.49 算数の宿題
ユーザー enuemuenuemu
提出日時 2014-10-23 22:54:52
言語 C++11
(gcc 8.5.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 1,515 Byte
コンパイル時間 595 ms
使用メモリ 3,616 KB
最終ジャッジ日時 2022-10-04 22:48:40
合計ジャッジ時間 1,438 ms
ジャッジサーバーID
(参考情報)
judge16 / judge13
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
testcase_00 AC 2 ms
3,616 KB
testcase_01 AC 2 ms
3,544 KB
testcase_02 AC 1 ms
3,508 KB
testcase_03 AC 2 ms
3,512 KB
testcase_04 AC 1 ms
3,508 KB
testcase_05 AC 1 ms
3,436 KB
testcase_06 AC 1 ms
3,596 KB
testcase_07 AC 2 ms
3,504 KB
testcase_08 AC 1 ms
3,612 KB
testcase_09 AC 1 ms
3,444 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘std::vector<std::__cxx11::basic_string<char> > split(std::__cxx11::string, char)’:
main.cpp:36:10: warning: control reaches end of non-void function [-Wreturn-type]
   string s1;
          ^~

ソースコード

diff #

#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
 
using namespace std;
 
#define sz size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(c) (c).begin(), (c).end()
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define clr(a, b) memset((a), (b) ,sizeof(a))
 
#define MOD 1000000007

vector<string> split(string s, char c){
  vector<string> ret;
  string s1;
  for(int i = 0; i <= s.size(); i++){
    if(i == s.size()){
      ret.push_back(s1);
      return ret;
    }
    if(s[i] == c){
      ret.push_back(s1);
      s1 = "";
    }
    else{
      s1 += s[i];
    }
  }
}

long long ston(string s){
  long long n;
  sscanf(s.c_str(), "%lld", &n);
  return n;
}

int main(){
	string s;
	cin >> s;
	string s1;
	rep(i,0,s.sz){
		if(s[i]=='+' || s[i] =='*'){
			s1+=s[i];
		}
	}
	rep(i,0,s.sz){
		if(s[i] == '+' || s[i] == '*'){
			s[i] = ' ';
		}
	}
	vector<string> vs;
	vs = split(s, ' ');
	vector<int> v;
	rep(i,0,vs.sz){
		v.pb(ston(vs[i]));
	}
	int ans = v[0];
	rep(i,0,s1.sz){
		if(s1[i]=='+'){
			ans *= v[i+1];
		}
		else{
			ans += v[i+1];
		}
	}
	cout << ans << endl;
  return 0;
}
0