Advertisement
kornelhowil

zadanie14

Dec 13th, 2020
700
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.78 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. // czas liniowo
  5. // pamiec stala
  6.  
  7. bool kantybiton(int A[], int n)
  8. {
  9.     int minimum = 0;
  10.     for (int i = 0; i < n; i++)  // znajdujemy minumum w tablicy
  11.         if (A[i] < A[minimum])
  12.             minimum = i;
  13.  
  14.     int a = 0;
  15.     for (int i = minimum; A[(n + i + 1) % n] > A[(n + i) % n]; i++) // patrzymy jak długo na lewo tablica jest malejąca
  16.         a++;
  17.  
  18.     int b = 0;
  19.     for (int i = minimum; A[(n + i - 1) % n] > A[(n + i) % n]; i--) // patrzymy jak dlugo na prawo tablica jest rosnaca
  20.         b++;
  21.  
  22.     if(a + b + 1 >= n)
  23.         return true;
  24.     else
  25.         return false;
  26. }
  27.  
  28. int main(void)
  29. {
  30.     int n;
  31.     scanf("%d", &n);
  32.     int A[n];
  33.     for (int i = 0; i < n; i++)
  34.         scanf("%d", &A[i]);
  35.  
  36.     if(kantybiton(A, n) == true)
  37.         printf("Tak\n");
  38.     else
  39.         printf("Nie\n");
  40.  
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement