Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.80 KB | None | 0 0
  1. program cuvinte_probl;
  2. const max=20000;
  3. type cat=0..max;
  4. var f:text;
  5.     n,x:cat;
  6.     cuvinte,fin:array[cat] of string[20];
  7.     prop:string[200];
  8.     cuv:string[20];
  9.     i,j:integer;
  10.  
  11. procedure citeste;
  12. begin
  13.     assign(f, 'text.in');
  14.     reset(f);
  15.     n:=0;
  16.     while not EOF(f) do
  17.     begin
  18.         readln(f,prop);
  19.         if prop <> '' then
  20.         begin
  21.             j:=0;
  22.             for i:=1 to length(prop) do
  23.                 if (prop[i]=' ')or(i=length(prop)) then
  24.                 begin
  25.                     inc(n);
  26.                     if(i=length(prop)) then
  27.                         cuvinte[n]:=copy(prop, i-j, j+1)
  28.                     else
  29.                         cuvinte[n]:=copy(prop, i-j, j);
  30.                     j:=0;
  31.                 end
  32.                 else
  33.                     j:=j+1;
  34.         end;
  35.     end;
  36.     close(f);
  37. end;
  38.  
  39. procedure scrieFisier;
  40. begin
  41.     assign(f, 'text.out');
  42.     rewrite(f);
  43.     writeln(f, n);
  44.     writeln(f, x);
  45.     for i:=1 to (n-x) do
  46.         writeln(f, fin[i]);
  47.     close(f);
  48. end;
  49.  
  50. procedure rezolva;
  51. var cuc:array[cat] of string[20];
  52.     temp:cat;
  53.     start:integer;
  54.     litf:char;
  55. begin
  56.     x:=n;
  57.     temp:=n;
  58.     start:=0;
  59.     while start < x do
  60.     begin
  61.         start:=start+1;
  62.         temp:=1;
  63.         cuc[temp]:=cuvinte[start];
  64.         litf:=cuvinte[start][length(cuvinte[start])];
  65.         for i:=start+1 to n do
  66.         begin
  67.             if cuvinte[i][1] = litf then
  68.             begin
  69.                 temp:=temp+1;
  70.                 cuc[temp]:=cuvinte[i];
  71.                 litf:=cuvinte[i][length(cuvinte[i])];
  72.             end;
  73.  
  74.         end;
  75.         if (n-temp) < x then
  76.         begin
  77.             x:=(n-temp);
  78.             fin:=cuc;
  79.         end;
  80.     end;
  81. end;
  82.  
  83. begin
  84.     citeste;
  85.     rezolva;
  86.     scrieFisier;
  87. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement