結果
| 問題 |
No.6 使いものにならないハッシュ
|
| コンテスト | |
| ユーザー |
fiord
|
| 提出日時 | 2015-07-09 21:31:53 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 5,000 ms |
| コード長 | 857 bytes |
| コンパイル時間 | 1,393 ms |
| コンパイル使用メモリ | 161,404 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-16 16:28:19 |
| 合計ジャッジ時間 | 2,025 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 32 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
char a;
int hashs(int n){
while(n>=10){
int temp=0;
while(n>0){
temp+=n%10;
n/=10;
}
n=temp;
}
return n;
}
int main(){
int k,n; cin>>k>>n;
bool data[n+1];
for(int i=0;i<=n;i++) data[i]=true;
vector<int> prime;
for(int i=2;i<=n;i++){
if(data[i]){
for(int j=2;i*j<=n;j++) data[i*j]=false;
if(k<=i){
prime.push_back(i);
}
}
}
vector<int> result;
for(int i=0;i<(int)prime.size();i++){
result.push_back(hashs(prime[i]));
}
bool used[10];
for(int i=0;i<10;i++) used[i]=false;
int ans=-1,length=0,now=0;
for(int i=(int)result.size()-1;i>=0;i--){
if(used[result[i]]){
while(used[result[i]]){
used[result[i+now]]=false;
now--;
}
}
used[result[i]]=true;
now++;
if(length<now){
length=now;
ans=prime[i];
}
}
cout<<ans<<endl;
return 0;
}
fiord