Saturday, June 13, 2015

UVa - 386 - Perfect Cubes

  1. /****************#####    بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم  #####*******************
  2. __________________________________________________________________________
  3. ######################  Ya-Seen Arafat(ACWizard) #########################
  4. ######################        UAP-CSE-33B        #########################
  5. *************************************************************************/
  6. #include <bits/stdc++.h>
  7. #define sc(n) scanf("%d", &n)
  8. #define S 10000003
  9. using namespace std;
  10. typedef long long LL;
  11. struct data{
  12.     int Num;
  13.     vector <int> Qube;
  14. }arr[S];
  15. int qube[S];
  16. int cmp(data p, data q){
  17.     if(p.Num == q.Num)return p.Qube < q.Qube;
  18.     return p.Num < q.Num;
  19. }
  20. void asgn_qube(){
  21.     for(int i = 2; i <= 200; i++)qube[i*i*i] = i;
  22. }
  23. int prfct_qube(int z){
  24.     int w, x, y;
  25.     for(int i = 2; i <= 200; i++){
  26.         w = i*i*i;
  27.         for(int j = i+1; j <= 200; j++){
  28.             x = j*j*j;
  29.             for(int k = j+1; k <= 200; k++){
  30.                 y = k*k*k;
  31.                 if(w+x+< S && qube[w+x+y]){
  32.                     arr[z].Num = qube[w+x+y];
  33.                     arr[z].Qube.push_back(i);
  34.                     arr[z].Qube.push_back(j);
  35.                     arr[z].Qube.push_back(k);
  36.                     z++;
  37.                 }
  38.             }
  39.         }
  40.     }
  41.     sort(arr, arr+z, cmp);
  42.     return z;
  43. }
  44. void Do(){
  45.     asgn_qube();
  46.     int lim = prfct_qube(0);
  47.     int l = 0;
  48.     for(int i = 0; i < lim; i++){
  49.         int sz = arr[i].Qube.size();
  50.         cout << "Cube = " << arr[i].Num << ", ";
  51.         for(int j = 0; j < 3; j++){
  52.             if(!j)cout << "Triple = (";
  53.             if(== 2)cout << arr[i].Qube[j] << ")" << endl;
  54.             else cout << arr[i].Qube[j] << ",";
  55.         }
  56.     }
  57. }
  58. int main(){
  59.     ios_base::sync_with_stdio(0); cin.tie(0);
  60.     #ifndef ONLINE_JUDGE
  61.     ///freopen("inp","r",stdout);
  62.     ///freopen("contest.txt","w",stdout);
  63.     #endif
  64.     Do();
  65.     return 0;
  66. }

No comments:

Post a Comment