학사 나부랭이

백준 15829 - 모듈러 연산 본문

塵箱/코드 삽질

백준 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;
}

'塵箱 > 코드 삽질' 카테고리의 다른 글

백준 11651 - 퀵 정렬  (0) 2021.04.21
백준 2869 - 조건 적확하게 설정하기  (0) 2021.04.20
백준 10866 - 덱  (0) 2021.04.19
백준 1494 - 다이나믹 프로그래밍, 이진 탐색  (0) 2021.04.17
Floyd algorithm  (0) 2021.04.16
Comments