fork(4) download
  1. #include <iostream>
  2. #include <list>
  3. using namespace std;
  4. string liczby;
  5. int aktualna;
  6. list <long long> zestaw;
  7. long long i,k,z,w,ktora,n,spacje,j,pozycje,ujemna;
  8. int main()
  9. {
  10. while(cin>>i)
  11. {
  12. getline(cin,liczby);
  13. k=liczby.length();
  14. spacje=0,pozycje=0,aktualna=0,ujemna=0;
  15. for(int d=1;d<=k-1;d++)
  16. {
  17. n=liczby[d];
  18. if(n==32) spacje++;
  19. }
  20. long long data[spacje-1],minusy[spacje-1];
  21. for(int f=1;f<=k-1;f++)
  22. {
  23. n=liczby[f];
  24. if(n==32) data[pozycje]=f,pozycje++;
  25. }
  26. for(int e=k-1;e>=0;e--)
  27. {
  28. n=liczby[e];
  29. if(n!=32&&n!=45)
  30. {
  31. n=n-48;
  32. if (aktualna==0) z=z+n;
  33. else if (aktualna==1) z=z+(n*10);
  34. else if (aktualna==2) z=z+(n*100);
  35. else if (aktualna==3) z=z+(n*1000);
  36. else if (aktualna==4) z=z+(n*10000);
  37. else if (aktualna==5) z=z+(n*100000);
  38. else if (aktualna==6) z=z+(n*1000000);
  39. else if (aktualna==7) z=z+(n*10000000);
  40. else if (aktualna==8) z=z+(n*100000000);
  41. else if (aktualna==9) z=z+(n*1000000000);
  42. else if (aktualna==10) z=z+(n*10000000000);
  43. else if (aktualna==11) z=z+(n*100000000000);
  44. else if (aktualna==12) z=z+(n*1000000000000);
  45. else if (aktualna==13) z=z+(n*10000000000000);
  46. else if (aktualna==14) z=z+(n*100000000000000);
  47. else if (aktualna==15) z=z+(n*1000000000000000);
  48. else if (aktualna==16) z=z+(n*10000000000000000);
  49. else if (aktualna==17) z=z+(n*100000000000000000);
  50. else if (aktualna==18) z=z+(n*1000000000000000000);
  51. aktualna++;
  52. }
  53. else if (n==45) minusy[ujemna]=1;
  54. else
  55. {
  56. aktualna=0;
  57. if(minusy[ujemna]==1) z=z-(2*z);
  58. ujemna++;
  59. zestaw.push_front(z);
  60. z=0;
  61. }
  62. }
  63. ktora=1,w=0;
  64. j=zestaw.size();
  65. zestaw.sort(),zestaw.reverse();
  66. long long obrobione[j-1];
  67. for(list<long long>::iterator y=zestaw.begin(); y!=zestaw.end(); ++y) obrobione[w]=*y,w++;
  68. if (i==0) cout<<"-"<<endl;
  69. else if (i==1&&j>=1) cout<<obrobione[0]<<endl;
  70. else if (i==1&&j==0) cout<<"-"<<endl;
  71. else
  72. {
  73. for(int a=1;a<j;a++)
  74. {
  75. if(obrobione[a]!=obrobione[a-1]) ktora++;
  76. if(ktora>=i) cout<<obrobione[a]<<endl,a=j;
  77. }
  78. if(ktora+1<=i) cout<<"-"<<endl;
  79. }
  80. for(int b=0;b<=j-1;b++) zestaw.pop_back();
  81. }
  82. return 0;
  83. }
Success #stdin #stdout 0s 16064KB
stdin
5 -99999999999 -34564 -325643 24543 0 0 0 0 0 12 456543
1
5
0
99 1234 5678
2 12345678901234567 11234567890 -98765432112345
stdout
-34564
-
-
-
-
11234567890