結果
| 問題 | No.3474 Concat Decimal |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-20 22:18:45 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 24 ms / 2,000 ms |
| コード長 | 1,193 bytes |
| 記録 | |
| コンパイル時間 | 1,994 ms |
| コンパイル使用メモリ | 337,696 KB |
| 実行使用メモリ | 7,720 KB |
| 最終ジャッジ日時 | 2026-03-20 22:18:48 |
| 合計ジャッジ時間 | 3,053 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 27 |
ソースコード
#include <bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
int binpow(int a,int p)
{
if (p==0) return 1;
if (p%2) return binpow(a,p-1)*a;
int t = binpow(a,p/2);
return t*t;
}
void solve()
{
int n;cin>>n;
vector<int> arr;
for (int i = 0; i < n; i++)
{
int t;cin>>t;
arr.push_back(t);
}
int max2 = 0;
int max5 = 0;
for (int i = 1; i < n; i++)
{
int curr2 = 0;
int curr5 = 0;
int tempcurr = arr[i];
// cout << arr[i] << " " << (tempcurr%2==0) << " " << tempcurr << endl;
while (tempcurr!=0 && tempcurr%2==0)
{
curr2++;
tempcurr/=2;
}
tempcurr = arr[i];
while (tempcurr !=0 && tempcurr%5==0)
{
curr5++;
tempcurr/=5;
}
int len = 0;
tempcurr = arr[i];
while (tempcurr)
{
len++;
tempcurr/=10;
}
max2 = max(max2, max(len-curr2, 0ll));
max5 = max(max5, max(len-curr5, 0ll));
// cout << arr[i] << " " << curr2 << " " << curr5 << " " << len << endl;
}
cout << binpow(2,max2)*binpow(5,max5) << endl;
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;cin>>t;while(t--)
solve();
}