結果
問題 |
No.297 カードの数式
|
ユーザー |
![]() |
提出日時 | 2015-11-06 23:58:40 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,069 bytes |
コンパイル時間 | 1,610 ms |
コンパイル使用メモリ | 164,404 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-13 13:14:18 |
合計ジャッジ時間 | 2,371 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 WA * 9 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(void){ int plus = 0; int minus = 0; vector<int> num; int N, numnum; char in; cin >> N; for(int i=0; i < N; i++){ cin >> in; if('0' <= in && in <= '9') num.push_back(in - '0'); else if(in == '+') plus++; else minus++; } numnum = N - plus - minus; sort(num.begin(), num.end(), greater<int>()); int opnum = plus + minus + 1; int maxop = 0; for(int i=0; i < numnum - (plus+minus); i++){ maxop *= 10; maxop += num[i]; } for(int i=numnum - (plus+minus); i < numnum - minus; i++){ maxop += num[i]; } for(int i=numnum - minus; i < numnum; i++){ maxop -= num[i]; } cout << maxop << " "; maxop = 0; for(int i=0; i < numnum - (plus+minus); i++){ maxop *= 10; maxop += num[i]; } if(minus > 0){ minus--; plus++; maxop = -maxop; } for(int i=numnum - (plus+minus); i < numnum - plus; i++){ maxop -= num[i]; } for(int i=numnum - plus; i < numnum; i++){ maxop += num[i]; } cout << maxop << endl; return 0; }