結果
| 問題 |
No.8015 アンチローリングハッシュ
|
| ユーザー |
mban
|
| 提出日時 | 2017-09-09 16:41:15 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
OLE
|
| 実行時間 | - |
| コード長 | 1,059 bytes |
| コンパイル時間 | 3,110 ms |
| コンパイル使用メモリ | 110,688 KB |
| 実行使用メモリ | 39,160 KB |
| 最終ジャッジ日時 | 2024-11-07 09:42:58 |
| 合計ジャッジ時間 | 7,826 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | OLE * 1 -- * 1 |
| other | -- * 21 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System;
using System.Collections.Generic;
class P
{
static void Main()
{
new P().Sol();
}
private int A,B;
private Random R=new Random();
private string Rand()
{
int l=50;
var res=new char[l];
for(int i=0;i<l;i++)
{
res[i]=(char)R.Next('a','z'+1);
}
return new string(res);
}
private long GetHash(string s)
{
var res=0L;
foreach(var c in s)
{
res=(res*A+c)%B;
}
return res;
}
public void Sol()
{
var l=Console.ReadLine().Split(' ');
A=int.Parse(l[0]);
B=int.Parse(l[1]);
var d=new Dictionary<long,string>();
while(true)
{
var s=Rand();
var lo=GetHash(s);
string o;
if(d.TryGetValue(lo,out o))
{
Console.WriteLine($"{o}\n{d[lo]}");
}
else
{
d[lo]=s;
}
}
}
}
mban