RIT02 - Editorial

Problem Link : - [http://www.codechef.com/CODE2015/problems/RIT02]

Author :- [http://www.codechef.com/users/dvlpr_expert]

Tester :- [http://www.codechef.com/users/dvlpr_expert]

Editorialist :- [http://www.codechef.com/users/dvlpr_expert]

DIFFICULTY :- Medium

PREREQUISITES :- Maths,Array

PROBLEM :-

Poornima College is having N branches, where each branches have positive integral student. A minimize operation is performed on the branch such that all of them are reduced by the minimum number student in a branch.
Suppose we have 5 branches and all of them have below students in a branch.
5 2 4 2 6

Then in one minimize operation we reduce all the branch by 2 students. For next minimize operation 3 branch are left (have non-zero student), whose value are
3 2 4

Above step is repeated till no students are left in all branches.
Given students of N branches, print the number of student that are reduce in subsequent minimize operation.

EXPLANATION :-

We have to reduce a sequence of 5 numbers with the least value to be subtracted from all the 5 values. And this process of reduction is done till we get all the values reduced completely.

NOTE :- Here, You have to display the number of branches in which students are reduced.

SOLUTION :-

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
class Carry1 {
	public static void main(String args[]) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = br.readLine();
		int D = Integer.parseInt(line);
		line = br.readLine();
		LinkedList<Integer> list = new LinkedList<Integer>();
		int n;
		String p[] = line.split(" ");
		for (int v = 0; v < D; v++) {
			n = Integer.parseInt(p[v]);
			list.add(n);
		}
		Collections.sort(list);
		while (!list.isEmpty()) {
			
			int x = list.get(0);
			int size = list.size();
			System.out.println(size);
			for (int i = 0; i < list.size(); i++) {
				int c1 = list.get(i);
				if (c1 - x == 0) {
					list.remove(i);
					i--;
				}
				else
					list.set(i, c1 - x);
			}
		}
	}
	private static void print(int i, int j) {
		for (int q = 1; q <= i; q++)
			System.out.print("5");
		for (int q = 1; q <= j; q++)
			System.out.print("3");
		System.out.println();
	}
}