public PricingVector (double[] basicScheme, double[] newScheme)
  {
    // Initializing auxiliary variables
    boolean startFlag = false;
    int start = -1;
    int end = -1;
    String type = "";
    double currentValue = 0;
    double previousPricing = 0;
    double previousValue = 0;

    // For all the minutes of the day the procedure checks the difference
    // between the two pricing schemes and defines the incentives found.
    for (int i = 0; i < newScheme.length; i++) {
      // System.out.println("Index:" + i);

      if (previousValue != newScheme[i]) {
        // System.out
        // .println("In for difference!" + previousValue + " " + diff[i]);

        if (startFlag == false) {
          // System.out.println("In for start!");
          currentValue = newScheme[i];
          previousPricing = basicScheme[i];
          if (newScheme[i] == basicScheme[i])
            type = "Base";
          else if (newScheme[i] < basicScheme[i])
            type = "Reward";
          else
            type = "Penalty";

          startFlag = true;
          start = i;
        }
        else {
          // System.out.println("In for end!");
          end = i - 1;
          startFlag = false;
          pricings.add(new Pricing(start, end, previousPricing, currentValue,
                                   type));

          // System.out.println("In for start kapaki!");
          currentValue = newScheme[i];
          previousPricing = basicScheme[i];
          if (newScheme[i] == basicScheme[i])
            type = "Base";
          else if (newScheme[i] < basicScheme[i])
            type = "Reward";
          else
            type = "Penalty";
          startFlag = true;
          start = i;

        }
      }
      previousValue = newScheme[i];
    }

    if (startFlag) {
      // System.out.println("In for end of index!");
    	  end = Constants.MINUTES_PER_DAY - 1;
      startFlag = false;
      pricings.add(new Pricing(start, end, previousPricing, currentValue, type));
    }

    analyze();

    // show();
  }