#!/usr/bin/perl

# Usuwa zbędne powtórzenia scieżek

use locale;

#if (@ARGV < 1) {
#    print "USAGE: remDup.pl num\n\tGdzie \"num\" jest ilością powtórzeń, które zostawiamy\n";
#    exit(0);
#}



#ilość powtórzeń, które zostawiamy
$max = 10;

# przyjmujemy, ze na wejściu znajduje się plik posortowany,
# po końcówkach oraz po prawdopodobieństwie

$line = <>;

while (($line !~ m/^$/) || ($line =~ m/^\n$/)) {

    $count = 0;

    while ($line =~ m/^\n$/) {
	$line = <>;
    }

    $line =~ /^([^~]+)~.*/;
    $theEnd = $1;
    $end = $1;

    while (($end =~ m/$theEnd/) && ($count++ < $max)) {
	print $line;
	$line = <>;
	$line =~ /^([^~]+)~.*/;
	$end = $1;
    }

    # tutaj mamy dwie możliwości:
    # 1. wypisaliśmy już max lini - musimy wywalić kolejne linie, które
    # zawierają końcówkę theEnd,
    # 2. pasujących lini było mniej niż max, wtedy nic nie musimy robić
    # - w zmiennej line znajduje się kolejna linia...

    if ($count == $max + 1) {
	while ($oldEnd =~ m/$theEnd/) {
	    $line = <>;
	    $line =~ /^([^~]+)~.*/;
	    $oldEnd = $1;
	}
    }

}
