結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-09-10 10:05:18 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 3,944 bytes |
| コンパイル時間 | 704 ms |
| コンパイル使用メモリ | 66,300 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-16 19:48:36 |
| 合計ジャッジ時間 | 1,919 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 WA * 6 RE * 2 |
ソースコード
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
ll ary[12];
int main(){
ll n;
cin>>n;
char a;
ll o=0;
ll s=0;
for(ll i=0; i<n; ++i){
cin>>a;
if(a=='+'){
ary[10]+=1;
o+=1;
} else if(a=='-'){
ary[11]+=1;
o+=1;
} else{
ll b=a;
b-=48;
ary[b]+=1;
s+=1;
}
}
ll p=0;
ll m=0;
if(ary[10]) p=1;
if(ary[11]) m=1;
ll x=0;
ll y=0;
vector<ll> v1,v2,v3;
string s1,s2;
ll d;
if(p==1 && m==0){
ll ary2[12];
for(ll i=0; i<12; ++i){
ary2[i]=ary[i];
}
while(1){
if(ary2[10]==0) break;
ary2[10]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v1.push_back(i);
ary2[i]-=1;
break;
}
}
}
for(ll i=9; i>=0; --i){
while(1){
if(ary2[i]==0) break;
char c=i+'0';
s1+=c;
ary2[i]-=1;
}
}
d=stol(s1);
v2.push_back(d);
x=v2[0];
for(ll i=0; i<v1.size(); ++i){
x+=v1[i];
}
for(ll i=0; i<12; ++i){
ary2[i]=ary[i];
}
ary2[0]=0;
v1.clear();
v2.clear();
while(1){
if(ary2[10]==0) break;
ary2[10]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v1.push_back(i);
ary2[i]-=1;
break;
}
}
}
for(ll i=9; i>=0; --i){
while(1){
if(ary2[i]==0) break;
char c=i+'0';
s2+=c;
ary2[i]-=1;
}
}
d=stol(s2);
v2.push_back(d);
y=v2[0];
for(ll i=0; i<v1.size(); ++i){
y+=v1[i];
}
} else if(p==0 && m==1){
ll ary2[12];
for(ll i=0; i<12; ++i){
ary2[i]=ary[i];
}
while(1){
if(ary2[11]==0) break;
ary2[11]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v1.push_back(i);
ary2[i]-=1;
break;
}
}
}
for(ll i=9; i>=0; --i){
while(1){
if(ary2[i]==0) break;
char c=i+'0';
s1+=c;
ary2[i]-=1;
}
}
d=stol(s1);
v2.push_back(d);
x=v2[0];
y-=v2[0];
for(ll i=0; i<v1.size(); ++i){
x-=v1[i];
if(i==0){
y+=v1[i];
} else {
y-=v1[i];
}
}
} else if(p==1 && m==1){
ll ary2[12];
for(ll i=0; i<12; ++i){
ary2[i]=ary[i];
}
while(1){
if(ary2[11]==0) break;
ary2[11]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v1.push_back(i);
ary2[i]-=1;
break;
}
}
}
while(1){
if(ary2[10]==0) break;
ary2[10]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v2.push_back(i);
ary2[i]-=1;
break;
}
}
}
for(ll i=9; i>=0; --i){
while(1){
if(ary2[i]==0) break;
char c=i+'0';
s1+=c;
ary2[i]-=1;
}
}
d=stol(s1);
v3.push_back(d);
x=v3[0];
for(ll i=0; i<v1.size(); ++i){
x-=v1[i];
}
for(ll i=0; i<v2.size(); ++i){
x+=v2[i];
}
for(ll i=0; i<12; ++i){
ary2[i]=ary[i];
}
v1.clear();
v2.clear();
v3.clear();
while(1){
if(ary2[10]==-1) break;
ary2[10]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v1.push_back(i);
ary2[i]-=1;
break;
}
}
}
while(1){
if(ary2[11]==1) break;
ary2[11]-=1;
for(ll i=0; i<10; ++i){
if(ary2[i]>0){
v2.push_back(i);
ary2[i]-=1;
break;
}
}
}
for(ll i=9; i>=0; --i){
while(1){
if(ary2[i]==0) break;
char c=i+'0';
s2+=c;
ary2[i]-=1;
}
}
d=stol(s2);
v3.push_back(d);
y=0;
for(ll i=0; i<v1.size(); ++i){
y+=v1[i];
}
for(ll i=0; i<v2.size(); ++i){
y-=v2[i];
}
y-=v3[0];
}
cout<<x<<" "<<y<<endl;
return 0;
}