Advertisement
nicuvlad76

Untitled

Dec 21st, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define N 100005
  3. using namespace std;
  4. ifstream fin("cioc.in");
  5. ofstream fout("cioc.out");
  6. long long v[N],a[N];
  7. int n,k,kfinal,cer;
  8. void Citire()
  9. {
  10. fin>>cer>>n>>k;
  11. for(int i=1; i<=n; i++)
  12. {
  13. fin>>v[i];
  14. a[i]=v[i];
  15. }
  16. }
  17. void Afisare()
  18. {
  19. int i=k+1;
  20. kfinal=k;
  21. while(a[i]==a[i-1]&&i<=n)kfinal++,i++;
  22.  
  23. if(cer==1) fout<<kfinal;
  24. else
  25. {
  26. int poz=kfinal+1;
  27. if(poz==n+1) a[poz]=a[n]+1;
  28. for(int i=1; i<=n; i++)
  29. {
  30. fout<<v[i]<<' ';
  31. if(v[i]<a[poz])fout<<v[i]*2<<" ";
  32. }
  33. }
  34. }
  35. void Interclasare(int st, int mij, int dr)
  36. {
  37. long long b[N] ,i,j,k;
  38. i=st, j=mij+1,k=0;
  39. while(i<=mij && j<=dr)
  40. if(a[i]<a[j])b[++k]=a[i++];
  41. else b[++k]=a[j++];
  42. while(i<=mij) b[++k]=a[i++];
  43. while(j<=dr) b[++k]=a[j++];
  44. k=0;
  45. for(i=st;i<=dr;i++)a[i]=b[++k];///in a pe b
  46. }
  47. void MS(int st, int dr)
  48. {
  49. if(st<dr)
  50. {
  51. int mij=(st+dr)/2;
  52. MS(st,mij);
  53. MS(mij+1,dr);
  54. Interclasare(st,mij,dr);
  55. }
  56. }
  57. int main()
  58. {
  59. Citire();
  60. MS(1,n);
  61. Afisare();
  62. return 0;
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement