tanasaradu

Untitled

Nov 12th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("roata.in");
  4. ofstream fout("roata.out");
  5. int n,p;
  6. struct Dublu
  7. {
  8. int x,y;
  9. };
  10. Dublu t[100005];
  11. void Citire()
  12. {
  13. int i;
  14. fin>>n;
  15. fin>>p;
  16. for(i=1;i<=p;i++)
  17. {
  18. fin>>t[i].x;
  19. t[i].y=i;
  20. }
  21. }
  22. void Cerinta1()
  23. {
  24. int i;
  25. long long s=0;
  26. for(i=1;i<=p;i++)
  27. s+=t[i].x;
  28. fout<<s<<"\n";
  29. }
  30. void Cerinta2()
  31. {
  32. int i,aux=n,minim,poz;
  33. while(aux<p)
  34. {
  35. minim=1000000;
  36. for(i=1;i<=n;i++)
  37. if(minim>t[i].x)
  38. {
  39. minim=t[i].x;
  40. poz=i;
  41. }
  42. for(i=1;i<=n;i++)
  43. t[i].x-=minim;
  44. if(t[poz].y>0)
  45. fout<<t[poz].y<<" ";
  46. aux++;
  47. swap(t[aux].x,t[poz].x);
  48. swap(t[aux].y,t[poz].y);
  49. }
  50. aux=1;
  51. while(aux<n)
  52. {
  53. minim=1000000;
  54. for(i=1;i<=n;i++)
  55. if(minim>t[i].x)
  56. {
  57. minim=t[i].x;
  58. poz=i;
  59. }
  60. for(i=1;i<=n;i++)
  61. t[i].x-=minim;
  62. if(t[poz].y>0)
  63. fout<<t[poz].y<<" ";
  64. aux++;
  65. t[poz].x=100000000;
  66. }
  67. minim=1000000;
  68. for(i=1;i<=n;i++)
  69. if(minim>t[i].x)
  70. {
  71. minim=t[i].x;
  72. poz=i;
  73. }
  74. fout<<t[poz].y<<"\n";
  75. fout<<poz<<"\n";
  76. }
  77. int main()
  78. {
  79. Citire();
  80. Cerinta1();
  81. Cerinta2();
  82. fin.close();
  83. fout.close();
  84. return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment