結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
tkzw_21
|
| 提出日時 | 2015-11-06 22:51:46 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 855 bytes |
| コンパイル時間 | 1,703 ms |
| コンパイル使用メモリ | 174,124 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-13 13:26:25 |
| 合計ジャッジ時間 | 2,517 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 23 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main(void){
int n;
cin >> n;
vector<int> a;
vector<char> c;
for(int i=0;i<n;i++){
char cc;
cin >> cc;
if(cc == '+' || cc== '-'){
c.push_back(cc);
}else{
a.push_back(cc-'0');
}
}
int m = c.size();
sort(a.begin(),a.end(),greater<int>());
sort(c.begin(),c.end());
long long ma = 0;
string s;
for(int i=0;i<a.size()-m;i++){
s += '0'+a[i];
}
ma = stol(s);
long long mm = ma;
for(int i=0;i<m;i++){
if(c[i] == '+')
ma += a[a.size()-m+i];
else
ma -= a[a.size()-m+i];
}
cout << ma << endl;
long long mi = 0;
vector<long long>vec;
sort(a.begin(),a.end());
for(int i=0;i<m;i++)vec.push_back(a[i]);
vec.push_back(mm);
mi = vec[0];
for(int i=1;i<vec.size();i++){
if(c[i-1] == '+')
mi += vec[i];
else
mi -= vec[i];
}
cout << mi << endl;
return 0;
}
tkzw_21