Advertisement
Kame3

Цик цак секвенца lab3.2

Nov 6th, 2020 (edited)
1,096
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.92 KB | None | 0 0
  1. Секвенца од броеви се смета за цик цак секвенца ако броевите во секвенцата се наизменично позитивни и негативни т.е. за секој пар од последователни броеви важи дека едниот е позитивен, а другиот е негативен.
  2.  
  3. На пример -1 2 -9 8 -4 е цик цак секвенца, но -1 9 7 -3 8 -3 не е, затоа што 9 и 7 се соседни броеви, но и двата се позитивни. Цик цак секвенцата може да почне или со позитивен или со негативен број. Секвенца од само еден ненулти број се смета како цик цак секвенца. За дадена низа од броеви да се напише алгоритам кој ќе ја врати должината на најдолгата подниза која претставува цик цак секвенца.
  4.  
  5. Во првиот ред од влезот даден е бројот N за должината на низата. Во секој од следните N редови е даден по еден број од оригиналната низа. На излез треба да се испечати должината на најдолгата подниза која е цик цак секвенца од оригиналната низа.
  6.  
  7. Име на класата: ZigZagSequence
  8.  
  9.  
  10. import java.io.BufferedReader;
  11. import java.io.InputStreamReader;
  12.  
  13. public class ZigZagSequence{
  14.    
  15.     static int najdiNajdolgaCikCak(int a[]) {
  16.         boolean flag=false, first = false,pozitiven=false;
  17.         int max=0,br=0;
  18.        
  19.         for(int i=0;i<a.length;i++)
  20.         {
  21.             flag=true;
  22.             if(first==false&&a[i]>0)
  23.             {
  24.                 pozitiven=true;
  25.                 br=1;
  26.                 first=true;
  27.             }
  28.             else if(first==false && a[i]<0)
  29.             {
  30.                 pozitiven=false;
  31.                 br=1;
  32.                 first=true;
  33.             }
  34.             else
  35.             {
  36.                 if(a[i]>0 && pozitiven==false)//ako e pozitiven(prethoden negative)
  37.                 {
  38.                     br++;
  39.                     pozitiven=true;
  40.                 }
  41.                 else if(a[i]<0 && pozitiven==true)//ako e negativen(prethoden pozitiven)
  42.                 {
  43.                     br++;
  44.                     pozitiven=false;
  45.                 }
  46.                 else if(a[i]==0)
  47.                 {
  48.                    
  49.                         if(br>max)
  50.                         {
  51.                         max=br;
  52.                         }
  53.                            
  54.                        
  55.                     first=false;
  56.                     br=0;
  57.                    
  58.                 }
  59.                 else //ako e pozitiven ili negativen(prethoden ist)
  60.                 {
  61.                     if(br>max)
  62.                     {
  63.                         max=br;
  64.                     }
  65.                    
  66.                     br=1;
  67.                    
  68.                     if(a[i]>0) pozitiven=true;
  69.                     else pozitiven=false;
  70.                 }
  71.             }
  72.             if(br>max) max=br;
  73.         }
  74.        
  75.         return max;
  76.    
  77.     }
  78.    
  79.     public static void main(String[] args) throws Exception {
  80.         int i,j,k;
  81.        
  82.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  83.        
  84.         int N = Integer.parseInt(br.readLine());
  85.         int a[] = new int[N];
  86.         for (i=0;i<N;i++)
  87.             a[i] = Integer.parseInt(br.readLine());
  88.        
  89.         int rez = najdiNajdolgaCikCak(a);
  90.         System.out.println(rez);
  91.        
  92.         br.close();
  93.        
  94.     }
  95.    
  96. }
  97.  
  98.  
  99. Sample input
  100.  
  101. 4
  102. -1
  103. 4
  104. -3
  105. 2
  106.  
  107. Sample output
  108.  
  109. 4
  110.  
  111.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement