Submission #9814309


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 < 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 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);	  
		}	
	      }
	    }
	  }
	}
      }
    }
  }

  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 3777 Byte
Status TLE
Exec Time 2110 ms
Memory 133768 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 125144 KB
a02 TLE 2109 ms 121560 KB
a03 TLE 2109 ms 129496 KB
b04 TLE 2109 ms 124632 KB
b05 TLE 2108 ms 123224 KB
b06 TLE 2109 ms 125528 KB
b07 TLE 2109 ms 125784 KB
b08 TLE 2109 ms 124504 KB
b09 TLE 2108 ms 130008 KB
b10 TLE 2110 ms 125272 KB
b11 TLE 2109 ms 120536 KB
b12 TLE 2109 ms 125400 KB
b13 TLE 2109 ms 122200 KB
b14 TLE 2108 ms 127448 KB
b15 TLE 2109 ms 123352 KB
b16 TLE 2110 ms 133720 KB
b17 TLE 2109 ms 129880 KB
b18 TLE 2108 ms 128984 KB
b19 TLE 2109 ms 121176 KB
b20 TLE 2109 ms 124888 KB
b21 TLE 2110 ms 131800 KB
b22 TLE 2109 ms 132696 KB
b23 TLE 2109 ms 127576 KB
b24 TLE 2109 ms 126296 KB
b25 TLE 2109 ms 125912 KB
b26 TLE 2110 ms 132824 KB
b27 TLE 2109 ms 133768 KB
b28 TLE 2109 ms 126296 KB
b29 TLE 2109 ms 121816 KB
b30 TLE 2109 ms 126040 KB
b31 TLE 2108 ms 128344 KB
b32 TLE 2109 ms 131032 KB
b33 TLE 2109 ms 129752 KB
b34 TLE 2109 ms 130136 KB
b35 TLE 2109 ms 125016 KB
b36 TLE 2109 ms 125144 KB
b37 TLE 2109 ms 130008 KB
b38 TLE 2109 ms 124760 KB
b39 TLE 2109 ms 127832 KB
b40 TLE 2109 ms 132896 KB
b41 TLE 2110 ms 133464 KB
b42 TLE 2109 ms 123608 KB
b43 TLE 2109 ms 128600 KB
b44 TLE 2108 ms 129880 KB
b45 TLE 2109 ms 125912 KB
b46 TLE 2109 ms 124504 KB
b47 TLE 2109 ms 122456 KB
b48 TLE 2109 ms 121176 KB
b49 TLE 2108 ms 127704 KB
b50 TLE 2109 ms 122584 KB
b51 TLE 2110 ms 129880 KB
b52 TLE 2109 ms 132696 KB
b53 TLE 2109 ms 130776 KB
b54 TLE 2109 ms 128088 KB
b55 TLE 2109 ms 125400 KB
b56 TLE 2109 ms 125784 KB
b57 TLE 2108 ms 121468 KB
b58 TLE 2109 ms 125912 KB
b59 TLE 2109 ms 128088 KB
b60 TLE 2109 ms 129368 KB
b61 TLE 2109 ms 129112 KB
b62 TLE 2108 ms 125400 KB
b63 TLE 2109 ms 126168 KB