fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<vector>
  4. #include<cmath>
  5. #include<algorithm>
  6. using namespace std;
  7. struct c
  8. {
  9. long long cube_m, cube_n;
  10. c(long long cube_m, long long cube_n)
  11. {
  12. this->cube_m = cube_m;
  13. this->cube_n = cube_n;
  14. }
  15. };
  16.  
  17. int main()
  18. {
  19. vector<c>cube;
  20. long long n = 10000, i, j, p, q, different, p1, q1,pola,min1,sum;
  21. for (i = 1; i*i*i <= n; i = i + 1)
  22. {
  23. cube.push_back(c(i, i*i*i));
  24. }
  25.  
  26. while(scanf("%lld",&pola)!=EOF)
  27. {
  28. min1=1000000;
  29. p1=1;q1=1;
  30. if(pola==0)
  31. break;
  32. for(i=0;i<cube.size();i++)
  33. {
  34. for(j=0+1+i;j<cube.size();j++)
  35. {
  36. different=cube[i].cube_n-cube[j].cube_n;
  37. if(different<0)
  38. different=different*(-1);
  39. if(different>pola)
  40. break;
  41. if(different==pola)
  42. {
  43. p=cube[i].cube_m;
  44. q=cube[j].cube_m;
  45. if(q<min1)
  46. {
  47. min1=q;
  48. p1=p;
  49. q1=q;
  50. }
  51. break;
  52. }
  53. }
  54.  
  55. }
  56. if(p1==1&q1==1)
  57. cout<<"No solution\n";
  58. else if(p1>q1)
  59. cout<<p1<<" "<<q1<<"\n";
  60. else if(p1<q1)
  61. cout<<q1<<" "<<p1<<"\n";
  62. }
  63.  
  64. }
Success #stdin #stdout 0s 3280KB
stdin
7

37

12

0

 
stdout
2 1
4 3
No solution