a1, ..., an, p болон k натурал тоонууд өгөгдөв (a1 ≤ a2 ≤ ... ≤ an, k ≤ n ≤ 2000). a1,..., an дарааллаас k дугаартай элементийг (өөрөөр хэлбэл ak) устгаж, эрэмбийг нь алдагдуулахгүйгээр p гэсэн утгатай элементийг нэм.
Input
Эхний мөрөнд n, k, p тоонууд зайгаар тусгаарлагдан өгөгдөнө. Дараагийн мөрөнд a1, ..., an тоонууд зайгаар тусгаарлагдан байрлана.
Output
Зохих хувиргалтууд хийгдсэн a1, ..., an тоонуудыг зайгаар тусгаарлан нэг мөрөнд хэвлэнэ.
Example
Input:
7 2 6
1 2 3 4 5 7 7
Output:
1 3 4 5 6 7 7
Энэ бодлогын шийдэл нь k дугаартай элементэд р гэсэн утгыг оноож үүссэн n элемэнт бүхий массиваа эрэмбэлэх явдал болно. Харин k дугаар элемэнтэд p утгыг оноохдоо массивийг 0 - ээс эхлэн дугаарладагийг мартаж болохгүй.
1.#include <stdio.h>
2.main()
3.{
4. int n,p,k;
5. int a[2000];
6. int i,j,r;
7. scanf("%d%d%d",&n,&k,&p);
8. for(int q=0; q<n; q++)
9. {
10. scanf("%d",&a[q]);
11. if(q==(k-1)) a[q]=p;
12. }
13.
14. for(i=1;i<n;i++)
15. { j=i;
16. while(j>0 && a[j-1]>a[j])
17.
18. {
19. r=a[j];
20. a[j]=a[j-1];
21. a[j-1]=r;
22. j--;
23. }
24. }
25. for(int w=0; w<n; w++)
26. printf("%d ",a[w]);
27.
28. return 0;
29.}
Гансүхээ энэ бодолгынхоо бодолтыг засаарай ок
ReplyDeleteОК. Бодолтуудыг заслаа. Бодолтод биш, HTML-тэй ажиллахдаа алдаа гаргажээ.
ReplyDeleteshine onii mend.. .:-)
ReplyDelete