結果
| 問題 |
No.722 100×100=1000
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-10-30 21:40:24 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 1,078 bytes |
| コンパイル時間 | 891 ms |
| コンパイル使用メモリ | 68,992 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-12-29 19:40:30 |
| 合計ジャッジ時間 | 1,572 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 27 |
ソースコード
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(int argc, char* argv[])
{
string A,B;
cin>>A>>B;
long long A1,B1;
sscanf((char*)A.c_str(),"%lld",&A1);
sscanf((char*)B.c_str(),"%lld",&B1);
if (abs((long double)A1)<100 || abs((long double)B1)<100){
cout<<A1*B1<<endl;
return 0;
}
int zeroNum=0;
bool bAllZero=true;
int i=1;
int sign=0;
char ACh,BCh;
if (A[0]=='-'){
sign=1;
i++;
ACh=A[1];
}else{
ACh=A[0];
}
for (;i<A.size();i++){
if (A[i]!='0'){
bAllZero=false;
break;
}
zeroNum++;
}
if (bAllZero){
i=1;
if (B[0]=='-'){
if (sign==0){
sign=1;
}else{
sign=0;
}
BCh=B[1];
i++;
}else{
BCh=B[0];
}
for (;i<B.size();i++){
if (B[i]!='0'){
bAllZero=false;
break;
}
zeroNum++;
}
}
if (bAllZero){
if (sign==1){
cout<<"-";
}
cout<<(ACh-'0')*(BCh-'0');
for (i=1;i<zeroNum;i++){
cout<<"0";
}
cout<<endl;
return 0;
}
long long C=A1*B1;
if (C<-99999999 || C>99999999){
cout<<"E"<<endl;
return 0;
}
cout<<C<<endl;
return 0;
}