답안 #446151

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
446151 2021-07-21T06:35:45 Z callmepandey Palindrome-Free Numbers (BOI13_numbers) C++17
0 / 100
2 ms 1612 KB
/*  
*    The way if it's all predetermined
*    And the way i should go all my life
*    I swear to go wherever will be
*    'Cause there'll be something to see and to find
*/
#include "bits/stdc++.h"
#define ll long long
using namespace std;
#define check(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename val1>
    void __f(const char* name, val1&& value) { 
    cout << name << " = " << value << endl; 
  }
  template <typename val1, typename... values>
    void __f( const char* names, val1&& value, values&&... multiplevalue) 
    {
      const char* comma = strchr( names + 1, ','); cout.write(names, comma - names) << " = " << value << " "; __f(comma + 1, multiplevalue...); 
    }
ll a , b;
string n , m;
ll till;
ll dp[21][21][2][2][10][10];
ll memo(ll i,ll startedwhen,ll started,ll small,ll last, ll secondlast,string s){
  if(i==till)
    return 1;
  ll &ans = dp[i][startedwhen][started][small][last][secondlast];
  if(ans != -1)
    return ans;
  ans = 0;
  int curr = s[i] - '0';
  if(started==0){
    ans += memo(i+1,startedwhen,0,0,0,0,s);
    for(int j = 1;j<=curr;j++){
      ans += memo(i+1,i,1,(j<curr),j,last,s);
    }
  } else {
    int x = 9;
    if(small==0){
      x = curr;
    }
    if(i - startedwhen==1){
      for(int j = 0;j<=x;j++){
        if(j==last)
          continue;
        ans += memo(i+1,startedwhen,1,(small | (j<curr)),i,last,s);
      }
    } else {
      for(int j = 0;j<=x;j++){
        if(j==last or j==secondlast)
          continue;
        ans += memo(i+1,startedwhen,1,(small | (j<curr)),i,last,s);
      }
    }
  }
  return ans;
}
int main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> a >> b;
  swap(a , b);
  while(a){
    char add = (char)((a%10) + '0');
    n = add + n;
    a /= 10;
  }
  b--;
  while(b){
    char add = (char)((b%10) + '0');
    m = add + m;
    b /= 10;    
  }
  till = n.size();
  memset(dp,-1,sizeof dp);
  ll ans = memo(0 , 0 , 0 , 0 , 0 , 0 , n);
  memset(dp,-1,sizeof dp);
  till = m.size();
  if(b > -1)
    ans -= memo(0,0,0,0,0,0,m);
  cout << ans << endl;
  cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << "\n";
  return 0;
}  
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1612 KB Output isn't correct
2 Incorrect 1 ms 1612 KB Output isn't correct
3 Incorrect 1 ms 1612 KB Output isn't correct
4 Incorrect 1 ms 1612 KB Output isn't correct
5 Incorrect 1 ms 1612 KB Output isn't correct
6 Incorrect 2 ms 1612 KB Output isn't correct
7 Incorrect 1 ms 1612 KB Output isn't correct
8 Incorrect 1 ms 1612 KB Output isn't correct
9 Incorrect 1 ms 1612 KB Output isn't correct
10 Incorrect 1 ms 1612 KB Output isn't correct
11 Incorrect 1 ms 1612 KB Output isn't correct
12 Incorrect 1 ms 1612 KB Output isn't correct
13 Incorrect 1 ms 1612 KB Output isn't correct
14 Incorrect 1 ms 1612 KB Output isn't correct
15 Incorrect 1 ms 1612 KB Output isn't correct
16 Incorrect 1 ms 1612 KB Output isn't correct
17 Incorrect 1 ms 1612 KB Output isn't correct
18 Incorrect 1 ms 1612 KB Output isn't correct
19 Incorrect 1 ms 1612 KB Output isn't correct
20 Incorrect 1 ms 1612 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1612 KB Output isn't correct
2 Incorrect 1 ms 1612 KB Output isn't correct
3 Incorrect 1 ms 1612 KB Output isn't correct
4 Incorrect 1 ms 1612 KB Output isn't correct
5 Incorrect 1 ms 1612 KB Output isn't correct
6 Incorrect 1 ms 1612 KB Output isn't correct
7 Incorrect 1 ms 1612 KB Output isn't correct
8 Incorrect 1 ms 1612 KB Output isn't correct
9 Incorrect 1 ms 1612 KB Output isn't correct
10 Incorrect 1 ms 1612 KB Output isn't correct
11 Incorrect 1 ms 1612 KB Output isn't correct
12 Incorrect 1 ms 1612 KB Output isn't correct
13 Incorrect 1 ms 1612 KB Output isn't correct
14 Incorrect 1 ms 1612 KB Output isn't correct
15 Incorrect 1 ms 1612 KB Output isn't correct
16 Incorrect 1 ms 1612 KB Output isn't correct
17 Incorrect 1 ms 1612 KB Output isn't correct
18 Incorrect 2 ms 1612 KB Output isn't correct
19 Incorrect 1 ms 1612 KB Output isn't correct
20 Incorrect 1 ms 1612 KB Output isn't correct
21 Incorrect 2 ms 1612 KB Output isn't correct
22 Incorrect 1 ms 1612 KB Output isn't correct
23 Incorrect 1 ms 1612 KB Output isn't correct
24 Incorrect 2 ms 1612 KB Output isn't correct
25 Incorrect 2 ms 1612 KB Output isn't correct
26 Incorrect 2 ms 1612 KB Output isn't correct
27 Incorrect 1 ms 1612 KB Output isn't correct
28 Incorrect 1 ms 1612 KB Output isn't correct
29 Incorrect 2 ms 1612 KB Output isn't correct
30 Incorrect 1 ms 1612 KB Output isn't correct
31 Incorrect 1 ms 1612 KB Output isn't correct
32 Incorrect 2 ms 1612 KB Output isn't correct
33 Incorrect 1 ms 1612 KB Output isn't correct
34 Incorrect 1 ms 1612 KB Output isn't correct
35 Incorrect 2 ms 1612 KB Output isn't correct
36 Incorrect 1 ms 1612 KB Output isn't correct
37 Incorrect 2 ms 1612 KB Output isn't correct
38 Incorrect 1 ms 1612 KB Output isn't correct
39 Incorrect 1 ms 1612 KB Output isn't correct
40 Incorrect 1 ms 1612 KB Output isn't correct
41 Incorrect 1 ms 1612 KB Output isn't correct
42 Incorrect 2 ms 1612 KB Output isn't correct
43 Incorrect 1 ms 1612 KB Output isn't correct
44 Incorrect 1 ms 1612 KB Output isn't correct
45 Incorrect 1 ms 1612 KB Output isn't correct