Submission #9814281


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
 
#define int long long

int rev(int N) {
  int ret = 0;
  while ( N ) {
    ret *= 10;
    ret += (N%10);
    N /= 10;    
  }

  return ret;
}

signed main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cout << fixed << setprecision(12);

  int D;
  cin >> D;

  set<int> all;
  {
    for ( int i = 0; i < 10; i++ ) {
      int a = i;
      int b = D % 10;
      int sum = (a + b) % 10;
      for ( int de = 0; de < 5; de++ ) {
	all.insert(rev(sum) * (int)pow(10, de) + a);	  
      }
      for ( int de = 0; de < 5; de++ ) {
	all.insert(rev(sum) /10 * (int)pow(10, de) + a);	  
      }
    }
  }
  
  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	int a = i + j*10;
	int b = D % 100;
	int sum = (a + b) % 100;
	for ( int de = 0; de < 5; de++ ) {
	  all.insert(rev(sum) * (int)pow(10, de) + a);	  
	}
	for ( int de = 0; de < 5; de++ ) {
	  all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
	}
      }
    }
  }

  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	for ( int k = 0; k < 10; k++ ) {
	  int a = i + j*10 + k*100;
	  int b = D % 1000;
	  int sum = (a + b) % 1000;
	  for ( int de = 0; de < 5; de++ ) {
	    all.insert(rev(sum) * (int)pow(10, de) + a);	  
	  }
	  	for ( int de = 0; de < 5; de++ ) {
	  all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
	}
	}
      }
    }
  }

  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	for ( int k = 0; k < 10; k++ ) {
	  for ( int l = 0; l < 10; l++ ) {
	    int a = i + j*10 + k*100 + l*1000;
	    int b = D % 10000;
	    int sum = (a + b) % 10000;
	    for ( int de = 0; de < 5; de++ ) {
	      all.insert(rev(sum) * (int)pow(10, de) + a);	  
	    }
	  }
	}
      }
    }
  }

  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	for ( int k = 0; k < 10; k++ ) {
	  for ( int l = 0; l < 10; l++ ) {
	    int a = i + j*10 + k*100 + l*1000;
	    int b = D % 10000;
	    int sum = (a + b) % 10000;
	    for ( int de = 0; de < 5; de++ ) {
	      all.insert(rev(sum) * (int)pow(10, de) + a);	  
	    }
	    for ( int de = 0; de < 5; de++ ) {
	      all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
	    }
	    for ( int de = 0; de < 5; de++ ) {
	      all.insert(rev(sum)/100 * (int)pow(10, de) + a);	  
	    }
	  }
	}
      }
    }
  }

  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	for ( int k = 0; k < 10; k++ ) {
	  for ( int l = 0; l < 10; l++ ) {
	    for ( int m = 0; m < 10; m++ ) {
	      int a = i + j*10 + k*100 + l*1000 + m*10000;
	      int b = D % 100000;
	      int sum = (a + b) % 100000;
	      for ( int de = 0; de < 6; de++ ) {
		all.insert(rev(sum) * (int)pow(10, de) + a);	  
	      }
	      for ( int de = 0; de < 6; de++ ) {
		all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
	      }
	      for ( int de = 0; de < 6; de++ ) {
		all.insert(rev(sum)/100 * (int)pow(10, de) + a);	  
	      }
	    }
	  }
	}
      }
    }
  }

  {
    for ( int i = 0; i < 10; i++ ) {
      for ( int j = 0; j < 10; j++ ) {
	for ( int k = 0; k < 10; k++ ) {
	  for ( int l = 0; l < 10; l++ ) {
	    for ( int m = 0; m < 10; m++ ) {
	      for ( int n = 0; n < 10; n++ ) {
		int a = i + j*10 + k*100 + l*1000 + m*10000 + n*100000;
		int b = D % 1000000;
		int sum = (a + b) % 1000000;
		for ( int de = 0; de < 6; de++ ) {
		  all.insert(rev(sum) * (int)pow(10, de) + a);	  
		}
		for ( int de = 0; de < 6; de++ ) {
		  all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
		}
		/*for ( int de = 0; de < 6; de++ ) {
		  all.insert(rev(sum)/100 * (int)pow(10, de) + a);	  
		  }*/
	      }
	    }
	  }
	}
      }
    }
  }

  int ans = 0;
  for ( int i: all ) {
    if ( rev(i) == i+D ) ans++;
  }

  cout << ans << endl;

  return 0;
}

Submission Info

Submission Time
Task F - Mirrored
User shot
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3974 Byte
Status TLE
Exec Time 2109 ms
Memory 100352 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
TLE × 3
TLE × 63
Set Name Test Cases
Sample a01, a02, a03
All a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49, b50, b51, b52, b53, b54, b55, b56, b57, b58, b59, b60, b61, b62, b63
Case Name Status Exec Time Memory
a01 TLE 2109 ms 88320 KB
a02 TLE 2109 ms 89216 KB
a03 TLE 2109 ms 91520 KB
b04 TLE 2109 ms 87424 KB
b05 TLE 2109 ms 86400 KB
b06 TLE 2109 ms 87424 KB
b07 TLE 2108 ms 95104 KB
b08 TLE 2109 ms 86016 KB
b09 TLE 2109 ms 86784 KB
b10 TLE 2109 ms 84736 KB
b11 TLE 2109 ms 84864 KB
b12 TLE 2109 ms 86400 KB
b13 TLE 2109 ms 86144 KB
b14 TLE 2109 ms 87552 KB
b15 TLE 2109 ms 86912 KB
b16 TLE 2108 ms 93824 KB
b17 TLE 2109 ms 87424 KB
b18 TLE 2109 ms 88704 KB
b19 TLE 2109 ms 86272 KB
b20 TLE 2108 ms 94720 KB
b21 TLE 2109 ms 86272 KB
b22 TLE 2109 ms 92032 KB
b23 TLE 2109 ms 86912 KB
b24 TLE 2109 ms 87296 KB
b25 TLE 2108 ms 87808 KB
b26 TLE 2109 ms 90880 KB
b27 TLE 2109 ms 89728 KB
b28 TLE 2108 ms 84352 KB
b29 TLE 2108 ms 93824 KB
b30 TLE 2109 ms 85632 KB
b31 TLE 2109 ms 86272 KB
b32 TLE 2109 ms 91520 KB
b33 TLE 2109 ms 100352 KB
b34 TLE 2109 ms 88448 KB
b35 TLE 2109 ms 86272 KB
b36 TLE 2109 ms 86528 KB
b37 TLE 2109 ms 92672 KB
b38 TLE 2108 ms 90496 KB
b39 TLE 2109 ms 86144 KB
b40 TLE 2109 ms 89600 KB
b41 TLE 2109 ms 88064 KB
b42 TLE 2108 ms 92800 KB
b43 TLE 2109 ms 91648 KB
b44 TLE 2109 ms 87808 KB
b45 TLE 2109 ms 85888 KB
b46 TLE 2109 ms 99072 KB
b47 TLE 2109 ms 89984 KB
b48 TLE 2109 ms 89088 KB
b49 TLE 2109 ms 92160 KB
b50 TLE 2109 ms 84608 KB
b51 TLE 2108 ms 93952 KB
b52 TLE 2109 ms 92032 KB
b53 TLE 2109 ms 88960 KB
b54 TLE 2109 ms 85760 KB
b55 TLE 2108 ms 93184 KB
b56 TLE 2109 ms 87168 KB
b57 TLE 2109 ms 89472 KB
b58 TLE 2109 ms 87424 KB
b59 TLE 2109 ms 88832 KB
b60 TLE 2109 ms 84096 KB
b61 TLE 2109 ms 87552 KB
b62 TLE 2109 ms 85888 KB
b63 TLE 2109 ms 86400 KB