結果
問題 | No.81 すべて足すだけの簡単なお仕事です。 |
ユーザー | kongarishisyamo |
提出日時 | 2016-02-25 02:14:28 |
言語 | C++11 (gcc 11.4.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,591 bytes |
コンパイル時間 | 516 ms |
コンパイル使用メモリ | 59,848 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-22 13:38:35 |
合計ジャッジ時間 | 1,400 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,812 KB |
testcase_01 | AC | 2 ms
6,944 KB |
testcase_02 | AC | 2 ms
6,940 KB |
testcase_03 | AC | 2 ms
6,940 KB |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | AC | 1 ms
6,940 KB |
testcase_14 | AC | 2 ms
6,940 KB |
testcase_15 | WA | - |
testcase_16 | AC | 1 ms
6,940 KB |
testcase_17 | WA | - |
testcase_18 | AC | 2 ms
6,940 KB |
testcase_19 | AC | 1 ms
6,940 KB |
testcase_20 | AC | 2 ms
6,940 KB |
testcase_21 | AC | 2 ms
6,944 KB |
testcase_22 | AC | 1 ms
6,944 KB |
testcase_23 | AC | 2 ms
6,940 KB |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | AC | 2 ms
6,940 KB |
testcase_29 | WA | - |
コンパイルメッセージ
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=kuri; kuri=0; bk-=(b[i]-s[i]-bk)/10; } } 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; }