Loading...
Submission
# When Author Problem Language CPU Memory
20821 2024-06-09 08:44:37 AHAMMED_99 Maximum Subarray Length C 1 ms 1920 kb Wrong Answer - 2
Test Cases
# CPU Memory Points
1 0 ms 1916 kb 1 Accepted
2 1 ms 1920 kb 0 Wrong Answer
3 0 ms 0 kb 0 Skipped
4 0 ms 0 kb 0 Skipped
5 0 ms 0 kb 0 Skipped
6 0 ms 0 kb 0 Skipped
7 0 ms 0 kb 0 Skipped
8 0 ms 0 kb 0 Skipped
9 0 ms 0 kb 0 Skipped
10 0 ms 0 kb 0 Skipped
Source Code
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. #define MAXN 100000
  5.  
  6. int main() {
  7. int T;
  8. scanf("%d", &T);
  9.  
  10. while (T--) {
  11. int n;
  12. scanf("%d", &n);
  13.  
  14. int a[MAXN];
  15. for (int i = 0; i < n; i++) {
  16. scanf("%d", &a[i]);
  17. }
  18.  
  19. // Find the minimum element in the array
  20. int min_element = INT_MAX;
  21. for (int i = 0; i < n; i++) {
  22. if (a[i] < min_element) {
  23. min_element = a[i];
  24. }
  25. }
  26.  
  27. // Find the longest subarray with sum equal to the minimum element
  28. int max_len = 0;
  29. int current_sum = 0;
  30. int start = 0;
  31.  
  32. for (int end = 0; end < n; end++) {
  33. current_sum += a[end];
  34.  
  35. // If the current_sum equals the minimum element, update the max_len
  36. if (current_sum == min_element) {
  37. if (end - start + 1 > max_len) {
  38. max_len = end - start + 1;
  39. }
  40. }
  41.  
  42. // If current_sum exceeds min_element, reset the start and current_sum
  43. while (current_sum < min_element && start <= end) {
  44. current_sum -= a[start];
  45. start++;
  46. }
  47. }
  48.  
  49. printf("%d\n", max_len);
  50. }
  51.  
  52. return 0;
  53. }
  54.