Module: hash


Problem

1/8

hash de doble cadena

Theory Click to read/hide

Error

Problem

Se le dan t consultas, en cada una de las cuales se le da una cadena s que consta de letras latinas minúsculas, un número p y un número mod.
Para cada consulta, calcule un módulo hash polinomial base p de la cadena que es la cadena s, donde se duplica cada letra. Es decir, si s = "isaac", entonces necesita calcular el hash de la cadena "iissaaaacc".

Entrada:
La primera línea contiene el número t - el número de solicitudes.
Luego hay t líneas, cada una de las cuales contiene s separadas por espacios (1 <= |s| <= 20), p (1 <= p <= 105) y mod ( 1 <= mod <= 108).

Salida:
Imprime las respuestas a las consultas, cada una en una línea separada.

Ejemplo:
 
Entrada Salida
2
isaac 12345 87654321
Newton 54321 12345678
8829000
9632318
Write the program below
#include<bits/stdc++.h>
using namespace std;

long long calc_hash(const string& s, long long p, long long mod) {
	long long h = 0;
	for (int i = 0; i < s.size(); i++) {
		h = 
	     
}
	return h;
}

int main()
{
	int t;
	cin >> t;

	while (t--) {
		string s;
		long long p, mod;
		cin >> s >> p >> mod;
		cout << calc_hash(s, p, mod) << '\n';
	}

	return 0;
}
     

     

Program check result

To check the solution of the problem, you need to register or log in!