fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. int n,k;
  8.  
  9. cin >> n >> k;
  10.  
  11. int arr[n];
  12.  
  13. for(int i=0; i<n; i++) {
  14. cin >> arr[i];
  15. }
  16.  
  17. int l=0, r=0, max_len=0, zero=0, lf=0, rf=0;
  18. while (l<=r && r<n) {
  19. if(arr[r]==0) {
  20. zero++;
  21. r++;
  22. while(zero>k) {
  23. if(arr[l]==0){
  24. zero--;
  25. }
  26. l++;
  27. }
  28. }
  29. else {
  30. int len = r-l+1;
  31. if(len >= max_len) {
  32. lf =l;
  33. rf =r;
  34. max_len = len;
  35. }
  36. r++;
  37. }
  38. }
  39. if(zero==k && max_len==0){
  40. cout << k << endl;
  41. for(int i=0; i<k; i++) {
  42. cout << 1 << " ";
  43. }
  44. for(int i=k; i<n; i++) {
  45. cout << 0 << " ";
  46. }
  47. cout << endl;
  48. }
  49. else{
  50.  
  51. for(int i=lf; i<=rf; i++) {
  52. arr[i] = 1;
  53. }
  54.  
  55. cout << max_len << endl;
  56.  
  57. for(int i=0; i<n; i++) {
  58. cout << arr[i] << " ";
  59. }
  60. cout << endl;
  61. }
  62.  
  63. return 0;
  64. }
Success #stdin #stdout 0s 4508KB
stdin
10 2
1 0 0 1 0 1 0 1 0 1
stdout
5
1 0 0 1 0 1 1 1 1 1