結果

問題 No.222 引き算と足し算
ユーザー imulan
提出日時 2016-02-11 21:23:45
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 794 bytes
コンパイル時間 1,437 ms
コンパイル使用メモリ 158,468 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-15 22:10:07
合計ジャッジ時間 2,346 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(i,n) for(i=0;i<n;++i)
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define mp make_pair
#define pb push_back
#define fi first
#define sc second

int main(int argc, char const *argv[]) {
  int i;

  string s;
  cin >>s;

  //まず演算子の位置を見つける
  char op='?';
  int op_index=-1;
  bool f=false;
  //数字の直後の演算子
  rep(i,s.size()){
    if('0'<=s[i]&&s[i]<='9') f=true;
    else{//記号
      if(f){
        op_index=i;
        op=s[i];
        break;
      }
    }
  }

  int x=atoi(s.substr(0,op_index).c_str());
  int y=atoi(s.substr(op_index+1).c_str());

  int ans=x+y;
  if(op=='+') ans=x-y;
  std::cout << ans << std::endl;
  return 0;
}
0