Submission #9814556


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;

  unordered_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 < 9; de++ ) {
		all.insert(rev(sum) * (int)pow(10, de) + a);	  
	      }
	      for ( int de = 0; de < 9; de++ ) {
		all.insert(rev(sum)/10 * (int)pow(10, de) + a);	  
	      }	     
	    }
	  }
	}
      }
    }
  }

  if ( false ) {
    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;
		int sum = (a + b) % 1000000;
		int pp = 1;
		int revsum = rev(sum);
		for ( int de = 0; de < 6; de++ ) {
		  all.insert(revsum * pp + a);
		  pp *= 10;
		}
		pp = 1;
		for ( int de = 0; de < 6; de++ ) {
		  all.insert(revsum/10 * pp + a);
		  pp *= 10;
		}		
	      }
	    }
	  }
	}
      }
    }
  }
  
  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 3847 Byte
Status WA
Exec Time 809 ms
Memory 58384 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
AC × 3
AC × 51
WA × 12
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 AC 695 ms 58256 KB
a02 AC 809 ms 58256 KB
a03 AC 640 ms 58256 KB
b04 AC 619 ms 58256 KB
b05 AC 706 ms 58256 KB
b06 AC 686 ms 58256 KB
b07 AC 689 ms 58256 KB
b08 AC 708 ms 58256 KB
b09 AC 693 ms 58256 KB
b10 AC 748 ms 58256 KB
b11 AC 744 ms 58256 KB
b12 AC 672 ms 58256 KB
b13 AC 637 ms 58256 KB
b14 AC 630 ms 58256 KB
b15 AC 787 ms 58256 KB
b16 AC 795 ms 58256 KB
b17 AC 723 ms 58256 KB
b18 WA 657 ms 58256 KB
b19 WA 711 ms 58256 KB
b20 WA 687 ms 58256 KB
b21 WA 648 ms 58256 KB
b22 WA 702 ms 58256 KB
b23 WA 706 ms 58256 KB
b24 AC 749 ms 58256 KB
b25 WA 734 ms 58256 KB
b26 AC 671 ms 58256 KB
b27 AC 647 ms 58256 KB
b28 AC 691 ms 58256 KB
b29 AC 643 ms 58256 KB
b30 WA 618 ms 58256 KB
b31 AC 713 ms 58256 KB
b32 AC 650 ms 58256 KB
b33 WA 630 ms 58256 KB
b34 AC 677 ms 58256 KB
b35 WA 713 ms 58256 KB
b36 WA 775 ms 58384 KB
b37 AC 689 ms 58256 KB
b38 AC 629 ms 58256 KB
b39 AC 690 ms 58256 KB
b40 AC 612 ms 58256 KB
b41 AC 702 ms 58256 KB
b42 WA 610 ms 58256 KB
b43 AC 785 ms 58256 KB
b44 AC 693 ms 58256 KB
b45 AC 647 ms 58256 KB
b46 AC 633 ms 58256 KB
b47 AC 701 ms 58256 KB
b48 AC 673 ms 58256 KB
b49 AC 603 ms 58256 KB
b50 AC 696 ms 58256 KB
b51 AC 654 ms 58256 KB
b52 AC 621 ms 58256 KB
b53 AC 700 ms 58256 KB
b54 AC 682 ms 58256 KB
b55 AC 624 ms 58256 KB
b56 AC 641 ms 58256 KB
b57 AC 633 ms 58256 KB
b58 AC 575 ms 58256 KB
b59 AC 773 ms 58256 KB
b60 AC 634 ms 58256 KB
b61 AC 765 ms 58256 KB
b62 AC 754 ms 58256 KB
b63 AC 717 ms 58256 KB