15829 - Hashing

solution

code

#include <iostream>
using namespace std;

long long int pow(int exp, long long int n)
{
    for(int i = 0; i < exp; i++)
    {   
        n %= 1234567891;
        n *= 31;
    }

    return n;
}

long long int myhash(string str)
{
    long long int n;
    long long int ret = 0;
    for(int i = 0; i < str.length(); i++)
    {
        n = str[i] - 'a' + 1;
        ret += pow(i, n);
        ret %= 1234567891;
    }

    return ret;
}

int main()
{
    int L;
    cin >> L;
    string input;
    cin >> input;
    myhash(input);
    cout << myhash(input) << endl;

    return 0;
}

ref

15829번: Hashing