AquaBlitz11

TASK_052 - Poramee's Solution

Jan 7th, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int data[110];
  4.  
  5. bool bi = true, in = true, de = true;
  6.  
  7. int main() {
  8.     int n;
  9.     scanf("%d", &n);
  10.     for (int i = 0; i < n; ++i) {
  11.         scanf("%d", &data[i]);
  12.     }
  13.     int bitonicPoint = -1;
  14.     for (int i = 0; i < n - 2; ++i) {
  15.         if ((data[i + 1] > data[i] && data[i + 2] < data[i + 1])) {
  16.             bitonicPoint = i + 1;
  17.         }
  18.     }
  19.     if (n > 1 && bitonicPoint != -1) {
  20.         bool increase = false;
  21.         if (data[0] > data[1]) increase = false;
  22.         else if (data[0] < data[1]) increase = true;
  23.         if (!increase) {
  24.             for (int i = 0; i <= bitonicPoint - 1; ++i) {
  25.                 if (data[i] < data[i + 1]) {
  26.                     bi = false;
  27.                     break;
  28.                 }
  29.             }
  30.             for (int i = bitonicPoint; i < n - 1; ++i) {
  31.                 if (data[i] > data[i + 1]) {
  32.                     bi = false;
  33.                     break;
  34.                 }
  35.             }
  36.         }
  37.         else if (increase) {
  38.             for (int i = 0; i <= bitonicPoint - 1; ++i) {
  39.                 if (data[i] > data[i + 1]) {
  40.                     bi = false;
  41.                     break;
  42.                 }
  43.             }
  44.             for (int i = bitonicPoint; i < n - 1; ++i) {
  45.                 if (data[i] < data[i + 1]) {
  46.                     bi = false;
  47.                     break;
  48.                 }
  49.             }
  50.         }
  51.     }
  52.     else if (n == 1) bi = true;
  53.     else bi = false;
  54.     for (int i = 0; i < n - 1; ++i) {
  55.         if (data[i] >= data[i + 1]) {
  56.             in = false;
  57.             break;
  58.         }
  59.     }
  60.     for (int i = 0; i < n - 1; ++i) {
  61.         if (data[i] <= data[i + 1]) {
  62.             de = false;
  63.             break;
  64.         }
  65.     }
  66.     for (int i = 0; i < n - 1; ++i) {
  67.         if (data[i] == data[i + 1]) {
  68.             bi = false;
  69.             in = false;
  70.             de = false;
  71.             break;
  72.         }
  73.     }
  74.     if (bi || in || de) printf("Yes");
  75.     else printf("No");
  76. }
Add Comment
Please, Sign In to add comment