Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. program zad_d;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9. MAXN = 30000;
  10.  
  11. var
  12. a, b, pr, ans: array [0..MAXN] of integer;
  13. i, j, m, n, k, otv, x: integer;
  14. s: string;
  15.  
  16. procedure full(x, m: integer);
  17. var
  18. i, j: integer;
  19. begin
  20. pr[0] := 1;
  21. pr[1] := x;
  22. for i := 2 to 100 do
  23. pr[i] := pr[i - 1] * x mod m;
  24. end;
  25.  
  26.  
  27. function p(s: string; x, m: integer): integer;
  28. var
  29. i, j, pre, sum: integer;
  30. begin
  31. sum := 0;
  32. for i := 1 to length(s) do
  33. begin
  34. pre := strtoint(s[i]) * pr[i - 1];
  35. sum := (sum + pre) mod m;
  36. end;
  37. p := sum;
  38. end;
  39.  
  40.  
  41. begin
  42. readln(n, x, m);
  43. full(x, m);
  44. for i := 1 to n do
  45. begin
  46. readln(s);
  47. inc(ans[p(s, x, m)]);
  48. end;
  49. otv := 0;
  50. for i := 0 to m do
  51. otv := otv + (ans[i] * (ans[i] - 1)) div 2;
  52. writeln(otv);
  53. readln;readln;readln;
  54. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement