Dev-san

Untitled

Oct 22nd, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.99 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3.  
  4. public class ZigZagSequence {
  5.     static int najdiNajdolgaCikCak(int a[]) {
  6.         int posleden = a[0];
  7.         int
  8.           dSekvenca = 1
  9.         , maxDolzSekvenca = -1
  10.         , pocetokMaxSekvenca = 0
  11.         , krajMaxSekvenca = 0;
  12.         for (int i = 1; i < a.length; i++)
  13.         {
  14.             int m = a[i];
  15.            
  16.             //System.out.printf("%d vs %d - %d\n", posleden, m, dSekvenca);
  17.             if (
  18.                        (posleden > 0&&m > 0)
  19.                     || (posleden < 0 && m < 0)
  20.                     || (posleden == 0 || m == 0)
  21.                     || (i == a.length-1)
  22.                     )
  23.             {
  24.                 if (dSekvenca > maxDolzSekvenca)
  25.                 {
  26.                     krajMaxSekvenca = i;
  27.                     pocetokMaxSekvenca = krajMaxSekvenca - dSekvenca;
  28.                     maxDolzSekvenca = krajMaxSekvenca-pocetokMaxSekvenca;
  29.                     if (i == a.length-1)
  30.                         maxDolzSekvenca += 1;
  31.                 }
  32.                 dSekvenca = 0;
  33.             }
  34.            
  35.            
  36.             posleden = m;
  37.             dSekvenca++;
  38.         }
  39.         if (pocetokMaxSekvenca < 0)
  40.             pocetokMaxSekvenca = 0;
  41.         if (maxDolzSekvenca < 0)
  42.         {
  43.             pocetokMaxSekvenca = 0;
  44.             maxDolzSekvenca = a.length;
  45.             krajMaxSekvenca = maxDolzSekvenca -1;
  46.         }
  47.         /*System.out.printf("Najdolga sekvenca: %d-%d (%d)\n", pocetokMaxSekvenca, krajMaxSekvenca, maxDolzSekvenca);
  48.        
  49.         System.out.println("--------------------");
  50.         for (int i = pocetokMaxSekvenca; i < pocetokMaxSekvenca + maxDolzSekvenca; i++)
  51.             System.out.printf("[%d]: %d\n", i, a[i]);
  52.         System.out.println("--------------------");
  53.         */return maxDolzSekvenca;
  54.     }
  55.    
  56.     public static void main(String[] args) throws Exception {
  57.         int i,j,k;
  58.        
  59.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  60.        
  61.         int N = Integer.parseInt(br.readLine());
  62.         int a[] = new int[N];
  63.         for (i=0;i<N;i++)
  64.             a[i] = Integer.parseInt(br.readLine());
  65.        
  66.         int rez = najdiNajdolgaCikCak(a);
  67.         System.out.println(rez);
  68.        
  69.         br.close();
  70.        
  71.     }
  72.    
  73. }
Advertisement
Add Comment
Please, Sign In to add comment