結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
tkzw_21
|
| 提出日時 | 2015-11-06 23:04:09 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,065 bytes |
| コンパイル時間 | 1,791 ms |
| コンパイル使用メモリ | 174,012 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-13 13:30:56 |
| 合計ジャッジ時間 | 2,425 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 WA * 5 |
ソースコード
#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];
}
long long mi = 0;
vector<long long>vec;
sort(a.begin(),a.end());
s = "";
for(int i=0;i<a.size()-m;i++){
s += '0'+a[i];
}
long long un = stol(s);
for(int i=0;i<m;i++){
un += a[i+a.size()-m];
}
if(c[c.size()-1] == '+'){
cout <<ma << " "<< un << endl;
exit(0);
}
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 << ma << " " << mi << endl;
return 0;
}
tkzw_21