結果
| 問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
| コンテスト | |
| ユーザー |
kongarishisyamo
|
| 提出日時 | 2016-02-25 02:20:36 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,592 bytes |
| コンパイル時間 | 689 ms |
| コンパイル使用メモリ | 58,236 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-12-15 01:04:02 |
| 合計ジャッジ時間 | 1,605 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 WA * 5 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:93:9: warning: ‘big’ may be used uninitialized [-Wmaybe-uninitialized]
93 | if(big==0) sminus(psum,msum,ans);
| ^~
ソースコード
#include<iostream>
#include<string>
using namespace std;
#define NMAX 100
string expend(string s){
bool dotf=false;
bool minusf=false;
int doti=-1;
int ints=-1,fews=-1;
string ret="";
for(int i=0;i<s.size();i++){
if(s[i]=='.') doti=i,dotf=true;
if(s[i]=='-') minusf=true;
}
if(dotf){
ints=doti-minusf;
fews=s.size()-ints-1;
}
else{
ints=s.size()-minusf;
fews=0;
}
if(minusf) ret+='-';
else ret+='+';
for(int i=0;i<20-ints;i++){
ret+='0';
}
for(int i=minusf;i<s.size();i++){
if(s[i]=='.') continue;
ret+=s[i];
}
for(int i=0;i<10-fews+minusf;i++){
ret+='0';
}
return ret;
}
void sminus(int b[30],int s[30],int ans[30]){
int bk=0,kuri=0;
for(int i=29;i>=0;i--){
while(b[i]-s[i]-bk<0){
kuri++;
b[i]+=10;
}
ans[i]+=(b[i]-s[i]-bk)%10;
bk=-(b[i]-s[i]-bk)/10;
bk+=kuri;
kuri=0;
}
}
int main(){
int N;
string A[NMAX];
int msum[30],psum[30];
int ans[30];
cin>>N;
for(int i=0;i<N;i++){
cin>>A[i];
A[i]=expend(A[i]);
}
for(int i=0;i<30;i++){
msum[i]=0;
psum[i]=0;
ans[i]=0;
}
for(int i=0;i<30;i++){
for(int j=0;j<N;j++){
if(A[j][0]=='-') msum[i]+=A[j][i+1]-'0';
else psum[i]+=A[j][i+1]-'0';
}
}
int big;/*0:plus 1:minus*/
for(int i=0;i<30;i++){
if(psum[i]==msum[i]) continue;
else{
if(psum[i]>msum[i]) big=0;
else big=1;
break;
}
}
if(big==0) sminus(psum,msum,ans);
else sminus(msum,psum,ans);
bool zf=false;
if(big==1) cout<<"-";
for(int i=0;i<20;i++){
if(ans[i]!=0) zf=true;
if(zf) cout<<ans[i];
}
cout<<".";
for(int i=20;i<30;i++){
cout<<ans[i];
}
cout<<endl;
}
kongarishisyamo