塵箱/코드 삽질
백준 15829 - 모듈러 연산
태양왕 해킹 (14세)
2021. 4. 20. 01:36
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n;
cin >> n;
long long res = 0, s = 1;
string str;
cin >> str;
for (int i = 0; i < str.size(); i++) {
//(a + b) mod n = ((a mod n_[ⓐ에서 res < 1234567891 즉 해줄 필요 X]) + (b mod n_[str.at * s < 1234567891])) mod n_[ⓑ]
//(a * b) mod n = ((a mod n_[str.at < 1234567891]) *_[ⓐ에서 s곱] (b mod n_[ⓒ])) mod n_[ⓑ]
//res += ((long long)str.at(i) - 96) * sqr(31, i);
//= res = (res + str.at - 96) * s
res += ((long long)str.at(i) - 96) * s; //ⓐ
res %= 1234567891; //ⓑ
s = (s * 31) % 1234567891; //ⓒ
}
cout << res << endl;
}