백준공부/java
[백준] 15829번 Hashing (bronze 2
gomduri43
2024. 2. 27. 12:28
import java.io.*;
import java.util.*;
import java.math.*;
public class Main{
public static void main(String[]args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
BigInteger[] temp=new BigInteger[51];
temp[0]=new BigInteger("1");
for(int i=1; i<51; i++){
temp[i]=new BigInteger("31");
temp[i]=temp[i].multiply(temp[i-1]);
}
int a=Integer.valueOf(br.readLine());
String text=br.readLine();
BigInteger answer=new BigInteger("0");
BigInteger re=new BigInteger("1234567891");
for(int i=0; i<a; i++){
String hash=String.valueOf(text.charAt(i)-'a'+1);
BigInteger mid=new BigInteger(hash);
answer=answer.add(temp[i].multiply(mid).remainder(re));
}
bw.write(answer.remainder(re)+"");
bw.flush();
}
}