fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int n;
  7. cin>>n;
  8. vector<int>arr(n);
  9. for(int i=0;i<n;i++){
  10. cin>>arr[i]; //array is sorted in the question
  11. }
  12. int k;
  13. cin>>k;
  14. int maxi=0;
  15. int i=0;
  16. int j=0;
  17. int diff=0;
  18. while(i<n && j<n){
  19. if(i==j){
  20. if(diff>k){
  21. i++;
  22. j++;
  23. if(j<n){
  24. diff=arr[j]-arr[i];
  25. }
  26. }
  27. else{
  28. int g=1;
  29. maxi=max(maxi,g);
  30. j++;
  31. if(j<n){
  32. diff=arr[j]-arr[i];
  33. }
  34. }
  35. }
  36. else{
  37. diff=arr[j]-arr[i];
  38. if(diff<=k){
  39. int len=abs(j-i+1);
  40. j++;
  41. if(j<n){
  42. diff=arr[j]-arr[i];
  43. }
  44. maxi=max(len,maxi);
  45. }
  46. else{
  47. i++;
  48. j--;
  49. diff=arr[j]-arr[i];
  50. if(i>j){
  51. j=i;
  52. }
  53. }
  54. }
  55. }
  56. cout<<"The angle at which you will stand that maximum buildings are covered in given degree range is:"<<maxi;
  57. return 0;
  58. }
Success #stdin #stdout 0.01s 5304KB
stdin
11
5, 9, 20, 22, 28, 35, 60, 350, 358, 359, 360
30
stdout
The angle at which you will stand that maximum buildings are covered in given degree range is:11