Submission #9814530


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 3850 Byte
Status WA
Exec Time 724 ms
Memory 58256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
AC × 3
AC × 41
WA × 22
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 677 ms 58256 KB
a02 AC 686 ms 58256 KB
a03 AC 678 ms 58256 KB
b04 AC 667 ms 58256 KB
b05 AC 663 ms 58256 KB
b06 AC 649 ms 58256 KB
b07 AC 699 ms 58256 KB
b08 AC 688 ms 58256 KB
b09 AC 708 ms 58256 KB
b10 AC 688 ms 58256 KB
b11 AC 670 ms 58256 KB
b12 AC 677 ms 58256 KB
b13 AC 686 ms 58256 KB
b14 AC 647 ms 58256 KB
b15 AC 659 ms 58256 KB
b16 AC 656 ms 58256 KB
b17 WA 656 ms 58256 KB
b18 WA 657 ms 58256 KB
b19 WA 691 ms 58256 KB
b20 WA 670 ms 58256 KB
b21 WA 643 ms 58256 KB
b22 WA 655 ms 58256 KB
b23 WA 664 ms 58256 KB
b24 WA 656 ms 58256 KB
b25 WA 638 ms 58256 KB
b26 WA 636 ms 58256 KB
b27 WA 646 ms 58256 KB
b28 WA 642 ms 58256 KB
b29 WA 648 ms 58256 KB
b30 WA 627 ms 58256 KB
b31 WA 635 ms 58256 KB
b32 WA 643 ms 58256 KB
b33 WA 646 ms 58256 KB
b34 WA 697 ms 58256 KB
b35 WA 696 ms 58256 KB
b36 WA 653 ms 58256 KB
b37 AC 640 ms 58256 KB
b38 AC 642 ms 58256 KB
b39 AC 634 ms 58256 KB
b40 AC 666 ms 58256 KB
b41 WA 664 ms 58256 KB
b42 WA 674 ms 58256 KB
b43 AC 677 ms 58256 KB
b44 AC 658 ms 58256 KB
b45 AC 700 ms 58256 KB
b46 AC 724 ms 58256 KB
b47 AC 690 ms 58256 KB
b48 AC 641 ms 58256 KB
b49 AC 655 ms 58256 KB
b50 AC 666 ms 58256 KB
b51 AC 722 ms 58256 KB
b52 AC 664 ms 58256 KB
b53 AC 673 ms 58256 KB
b54 AC 673 ms 58256 KB
b55 AC 652 ms 58256 KB
b56 AC 647 ms 58256 KB
b57 AC 648 ms 58256 KB
b58 AC 665 ms 58256 KB
b59 AC 658 ms 58256 KB
b60 AC 695 ms 58256 KB
b61 AC 664 ms 58256 KB
b62 AC 655 ms 58256 KB
b63 AC 653 ms 58256 KB