Codeforces Round #265 (Div. 2) E. Substitutes in Number (Mathematics ),

Source: Internet
Author: User

Codeforces Round #265 (Div. 2) E. Substitutes in Number (Mathematics ),

E. Substitutes in Numbertime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

Andrew and Eugene are playing a game. Initially, Andrew has stringS, Consisting of digits. Eugene sends Andrew multiple queries of type"DINavigation → navigationTI", That means" replace all digitsDIIn stringSWith substrings equalTI". For example, ifSLatency = Cost 123123, then query "2 latency → 000000" transformsSTo 10031003, and query "3 rows → tables" ("replace 3 by an empty string") transforms itSAuthorization = keys 1212. After all the queries Eugene asks Andrew to find the remainder after division of number with decimal representation equalSBy 1000000007 (109 bytes + Listen 7). When you representSAs a decimal number, please ignore the leading zeroes; also ifSIs an empty string, then it's assumed that the number equals to zero.

Andrew got tired of processing Eugene's requests manually and he asked you to write a program for that. Help him!

Input

The first line contains stringS(1 hour ≤ hour |S| Minimum ≤ limit 105), consisting of digits-the string before processing all the requests.

The second line contains a single integerN(0 bytes ≤ bytesNLimit ≤ limit 105)-the number of queries.

The nextNLines contain the descriptions of the queries.I-Th query is described by string"DI->TI", WhereDIIs exactly one digit (from 0 to 9 ),TIIs a string consisting of digits (TICan be an empty string). The sum of lengthsTIFor all queries doesn' t exceed 105. The queries are written in the order in which they need to be written med.

Output

Print a single integer-remainder of division of the resulting number by 1000000007 (109 bytes + limit 7 ).

Sample test (s) input
12312312->00
Output
10031003
Input
12312313->
Output
1212
Input
22222->00->7
Output
777
Input
10000000080
Output
1
Note

Note that the leading zeroes are not removed from stringSAfter the replacement (you can see it in the third sample ).



Question: Give You A number string and some replacement rules. to output the result of Modulo after replacement, you can use val [I] to represent the number represented by I, base [I] indicates the hexadecimal format used by I. A decimal string s can be expressed as sum (10 ^ (L-I) * s [I]), so all transformations can be converted to multiplication. the Code is as follows:


#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1e5+5;const int mod=1e9+7;string a,s[maxn];LL val[10],base[10];int f(char c){    return c-'0';}int main(){    ios_base::sync_with_stdio(false);    cin.tie(NULL);    int m;    cin>>a>>m;    for(int i=0;i<10;i++){        val[i]=i;        base[i]=10;    }    for(int i=1;i<=m;i++)cin>>s[i];    for(int i=m;i>=1;i--){        int L=s[i].size(),res=s[i][0]-'0';        LL v=0,b=1;        for(int j=L-1;j>2;j--){            v=(v+val[f(s[i][j])]*b)%mod;            b=(b*base[f(s[i][j])])%mod;        }        val[res]=v;        base[res]=b;        ///cout<<v<<' '<<b<<endl;    }    LL ans=0,b=1;    int L=a.size();    for(int i=L-1;i>=0;i--){        ans=(ans+b*val[f(a[i])])%mod;        b=(b*base[f(a[i])])%mod;    }    cout<<ans<<endl;    return 0;}







Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.