結果
| 問題 |
No.2178 Payable Magic Items
|
| コンテスト | |
| ユーザー |
_yurimoir
|
| 提出日時 | 2023-01-07 07:43:31 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 1,167 ms / 4,000 ms |
| コード長 | 1,038 bytes |
| コンパイル時間 | 2,928 ms |
| コンパイル使用メモリ | 254,576 KB |
| 実行使用メモリ | 33,024 KB |
| 最終ジャッジ日時 | 2024-12-14 18:28:44 |
| 合計ジャッジ時間 | 13,752 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 23 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
int n,k;
cin>>n>>k;
int tank[n];
set<int> st;
for(int i=0;i<n;i++){
string s;
cin>>s;
tank[i]=stoi(s);
st.insert(tank[i]);
}
int ans=0;
set<int> used;
for(int i=0;i<n;i++){
if(used.find(tank[i])!=used.end())continue;
queue<int> que;
que.push(tank[i]);
// used.insert(tank[i]);
// map<int,int> dist;
// dist[tank[i]]=0;
while(!que.empty()){
int px=que.front();
int v=px;
px*=10;
que.pop();
for(int j=0;j<k;j++){
px/=10;
if(px%10>0){
int nx=v-pow(10,j);
if(used.find(nx)!=used.end())continue;
if(st.find(nx)!=st.end())ans++;
used.insert(nx);
que.push(nx);
}
}
}
}
cout<<ans<<endl;
return 0;
}
_yurimoir