제출 #1169974

#제출 시각아이디문제언어결과실행 시간메모리
1169974al95ireyizLucky Numbers (RMI19_lucky)C++20
14 / 100
1099 ms121896 KiB
/**
* user:  bengin-61a
* fname: Jovan
* lname: Bengin
* task:  lucky
* score: 14.0
* date:  2019-10-10 05:56:36.189746
*/
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int MOD = 1000000007;

int resi(string s, string tren){
    if(tren > s) return 0;
    int k = tren.size();
    if(tren.size() >= 2 && tren[k-1] == '3' && tren[k-2] == '1') return 0;
    if(tren.size() == s.size()) return 1;
    int res = 0;
    for(int i=0; i<=9; i++){
        tren.push_back(i+'0');
        res = (res + resi(s, tren))%MOD;
        tren.pop_back();
    }
    return res;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, q;
    cin >> n >> q;
    string s;
    cin >> s;
    cout << resi(s, "") << "\n";
    for(int i=1; i<=q; i++){
        int t;
        cin >> t;
        if(t == 1){
            int l, r;
            cin >> l >> r;
            string str = "";
            for(int j=l-1; j<r; j++) str += s[j];
            cout << resi(str, "") << "\n";
        }
        else{
            int a, b;
            cin >> a >> b;
            s[a-1] = b+'0';
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...