EX12 - 足したり引いたり / 1.12 /

Time Limit: 2 sec / Memory Limit: 256 MB

説明ページに戻る

問題文

1+-のみからなる式Sが1行で与えられるので、計算結果を出力してください。

例えば式S1+1+1-1であったとき、計算結果は2です。

具体的な式Sの形式は以下の通りです。

  • Sの1文字目は必ず1です。
  • その後、「+または-」と1が交互に続きます。
  • Sの最後の文字も必ず1です。

式と演算子はスペースで区切られていないことに注意してください。

ページ末尾に問題のヒントがあります。詰まったら見てみましょう。


サンプルプログラム
#include <bits/stdc++.h>
using namespace std;

int main() {
  string S;
  cin >> S;

  // ここにプログラムを追記
}

制約

  • 1≦|S|≦100|S|は文字列の長さ)
  • S1から始まり、その後+または-1が交互に続き、1で終わる

入力

入力は次の形式で標準入力から与えられます。

S

出力

Sの計算結果を出力してください。

出力の最後には改行が必要です。


ジャッジでは以下の入力例以外のケースに関してもテストされることに注意。

入力例1

1+1+1-1

出力例1

2

問題文中で説明した入出力です。


入力例2

1-1-1-1-1-1

出力例2

-4

計算結果は負の値になることもあります。


入力例3

1

出力例3

1

入力は1だけで終わることもあります。


入力例4

1-1-1+1+1+1+1-1+1-1+1-1+1

出力例4

3

ヒント

次のプログラムは9文字の式Sにいくつ1が含まれているを出力するプログラムです。
今回の問題を解く際の参考にしてください。

クリックでヒントプログラムを見る
#include <bits/stdc++.h>
using namespace std;

int main() {
  string S;
  cin >> S;

  // 1の数を表す変数
  int count = 0;

  // 9文字の式に限定していることに注意
  for (int i = 0; i < 9; i++) {

    // 1があればcountを増やす
    if (S.at(i) == '1') {
      count++;
    }

  }

  cout << count << endl;
}
#### ヒント入力
1-1-1+1+1
#### ヒント出力
5

解答例

必ず自分で問題に挑戦してみてから見てください。
解答例