Submission #853716

#TimeUsernameProblemLanguageResultExecution timeMemory
853716divadLucky Numbers (RMI19_lucky)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define EQ 0 #define LE 1 using namespace std; const int MOD = 1e9+7; const int NMAX = 1e4+2; const int SIGMA = 10; int n,q,t,l,r,pos,val,dp[2][SIGMA][NMAX]; string s; int countWays(string str){ memset(dp, 0, sizeof(dp)); dp[EQ][0][0] = 1; for(int i = 1; i < str.size(); i++){ for(auto state : {EQ, LE}){ if(state == EQ){ for(int dig = 0; dig <= 9; dig++){ if(dig < str[i]-'0'){ /// LE for(int lst = 0; lst <= 9; lst++){ if(lst == 1 && dig == 3){ continue; } dp[LE][dig][i] += dp[EQ][lst][i-1]; dp[LE][dig][i] %= MOD; } }else if(dig == str[i]-'0'){ /// EQ for(int lst = 0; lst <= 9; lst++){ if(lst == 1 && dig == 3){ continue; } dp[EQ][dig][i] += dp[EQ][lst][i-1]; dp[EQ}[dig][i] %= MOD; } } } }else{ for(int dig = 0; dig <= 9; dig++){ for(int lst = 0; lst <= 9; lst++){ if(lst == 1 && dig == 3){ continue; } dp[LE][dig][i] += dp[LE][lst][i-1]; dp[LE][dig][i] %= MOD; } } } } } int ans = 0; for(int i = 0; i <= 9; i++){ ans += dp[LE][i][str.size()-1] + dp[EQ][i][str.size()-1]; ans %= MOD; } return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> q; cin >> s; s = "$"+s; cout << countWays(s) << "\n"; while(q--){ cin >> t; if(t == 1){ cin >> l >> r; int len = r-l+1; string str = s.substr(l, len); cout << countWays("$"+str) << "\n"; }else{ cin >> pos >> val; s[pos] = (val+'0'); } } return 0; }

Compilation message (stderr)

lucky.cpp: In function 'int countWays(std::string)':
lucky.cpp:14:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for(int i = 1; i < str.size(); i++){
      |                    ~~^~~~~~~~~~~~
lucky.cpp:34:34: error: expected ']' before '}' token
   34 |                             dp[EQ}[dig][i] %= MOD;
      |                                  ^
lucky.cpp:34:34: error: expected ';' before '}' token
lucky.cpp:34:34: warning: statement has no effect [-Wunused-value]
   34 |                             dp[EQ}[dig][i] %= MOD;
      |                             ~~~~~^
lucky.cpp: In lambda function:
lucky.cpp:34:40: error: expected '{' before '[' token
   34 |                             dp[EQ}[dig][i] %= MOD;
      |                                        ^
lucky.cpp: In function 'int countWays(std::string)':
lucky.cpp:34:40: error: no match for 'operator[]' (operand types are 'countWays(std::string)::<lambda()>' and 'int')
lucky.cpp:38:14: error: 'else' without a previous 'if'
   38 |             }else{
      |              ^~~~
lucky.cpp:50:5: warning: no return statement in function returning non-void [-Wreturn-type]
   50 |     }
      |     ^
lucky.cpp: At global scope:
lucky.cpp:52:5: error: expected unqualified-id before 'for'
   52 |     for(int i = 0; i <= 9; i++){
      |     ^~~
lucky.cpp:52:20: error: 'i' does not name a type
   52 |     for(int i = 0; i <= 9; i++){
      |                    ^
lucky.cpp:52:28: error: 'i' does not name a type
   52 |     for(int i = 0; i <= 9; i++){
      |                            ^
lucky.cpp:56:5: error: expected unqualified-id before 'return'
   56 |     return ans;
      |     ^~~~~~
lucky.cpp:57:1: error: expected declaration before '}' token
   57 | }
      | ^