code=1500
nobreak
nowarnings
domains
list = char*
predicates
nondeterm s_dashla(list, list, list, list, list, list, list, list, list, list, list)
nondeterm dashla_z(list, list, list)
nondeterm dashla_p(list, list, list)
nondeterm dashla_r(list, list, list)
nondeterm dashla_pn(list, list, list)
nondeterm dashla_dro(list, list, list)
nondeterm dashla_tn(list, list, list)
nondeterm dashla_pref
(integer, list
, list
) sheert(list, list, list)
st_list(String, char, list)
nondeterm s
dashla_cont(list, list, list)
goal s.
clauses
s:-readln(X), time(0,0,0,0), st_list(X,A,L),!,
s_dashla(L, L1, L2, L3, L5, L51, L6, L7, L8, L9),
getbacktrack(D)
time
(_
,_
,S
,T
), write("\nდრო
="
, S
, "
."
,T
," წამს\n"
), cutbacktrack(D),
write(X
, "\nზმნისწინი
=" L1
, "\nპირის_ნიშანი
="
, L2
, "\nპრეფიქსი=", L9, "\nკონტაქტი=" L51, "\nთემის_ნიშანი=", L7,
"\nდრო=", L5, "\nპირი_სუფიქსი=", L3,
st_list("",_,[]).
st_list(X,L,[L|Z]:-frontchar(X,L,Y),st_list(Y, L1, Z).
/* ზმნის ფორმის დაშლა მორფემებად */
s_dashla(Sitkva, Zmnis_cini, Piris_nishp, Piris_nishs, Ricxvi,
Dro_kilo, Cont, Ziri, Temis_nish, Dvn, Pref):-
dashla_z(Zmnis_cini, Suf, Sitkva),
getbacktrack(A),
dashla_p(Piris_nishp, Suf1, Suf),
getbacktrack(S),
dashla_r(Suf2, Ricxvi, Suf1),
cutbacktrack(S),
dashla_pn(Piris_nishp, Suf3, Piris_nishs, Suf2),
dashla_dro(Suf51, Temis_nish, Suf4),
dashla_cont(suf5, Cont, Suf51,
dashla_dvn(Suf6, Dvn, Suf5, Dvn_t),
getbacktrack(Z),
ziri(Ziri, Ziris_t, Tnish_t, Pref_t, Gar_t), Suf6),
cutbacktrack(Z),
dashla_pref(A, Pref, Dvn, Suf7),!.
/* ზმნისწინის გამოცნობა */
dashla_z([], Sitkva, Sitkva).
dashla_z(['დ', 'ა'], Suf, Sitkva):-sheert(['დ', 'ა'],
Suf,Sitkva),!.
dashla_z(['ა','მ','ო'],L,P):-sheert(['ა','მ','ო'],L,P),!.
dashla_z(['ა','ღ'],L,P):-sheert(['ა','ღ'],L,P).
dashla_z(['ა'],Suf,Sitkva):-sheert(['ა'],Suf,Sitkva),!.
dashla_z(['მ','ი'],L,P):-sheert(['მ','ი'],L,P).
dashla_z(['მ','ო'],L,P):-sheert(['მ','ო'],L,P).
dashla_z(['ჩ','ა','მ','ო'],L,P):-
sheert(['ჩ','ა','მ','ო'],L,P),!.
dashla_z(['ჩ','ა'],L,P:-sheert(['ჩ','ა'],L,P),!.
dashla_z(['შ','ე','მ','ო'],L,P):-
sheert(['შ','ე','მ','ო'],L,P),!.
dashla_z(['შ','ე'],L,P):-sheert(['შ','ე'],L,P),!.
dashla_z(['გ','ა','დ','ა'],L,P):-
sheert(['გ','ა','დ','ა'],L,P),!.
dashla_z(['გ','ა','დ','მ','ო'],L,P):-
sheert(['გ','ა','დ','მ','ო'],L,P),!.
dashla_z(['გ','ა','მ','ო'],L,P):-
sheert(['გ','ა','მ','ო'],L,P),!.
dashla_z(['გ','ა','ნ'],L,P):-sheert(['გ','ა','ნ'],L,P),!.
dashla_z(['გ','ა','რ','დ','ა'],L,P):-
sheert(['გ','ა','რ','დ','ა'],L,P),!.
dashla_z(['გ','ა''],L,P):-sheert(['გ','ა'],L,P),!.
dashla_z(['წ','ა','მ','ო'],L,P):-
sheert(['წ','ა','მ','ო'],L,P),!.
dashla_z(['წ','ა','რ','მ','ო'],L,P):-
sheert(['წ','ა','რ','მ','ო'],L,P),!.
dashla_z(['წ','ა','რ'],L,P):-
sheert(['წ','ა','რ'],L,P),!.
dashla_z(['წ','ა'],L,P):-sheert(['წ','ა'],L,P),!.
dashla_z(['შ','თ','ა'],L,P):-sheert(['შ','თ','ა'],L,P),!.
/* პირის ნიშანი-პრეფიქსის გამოცნობა */
dashla_p([],A,A).
dashla_p(['ე'],A,B):-sheert(['ე'],A,B),!.
dashla_p(['მ'],A,B):-sheert(['მ'],A,B),!.
dashla_p(['გ','ვ'],A,B):-sheert(['გ','ვ'],A,B),!.
dashla_p(['გ'],A,B):-sheert(['გ'],A,B),!.
dashla_p(['ს'],A,B):-sheert(['ს'],A,B),!.
dashla_p(['ჰ'],A,B):-sheert(['ჰ'],A,B),!.
dashla_p(['ხ'],A,B):-sheert(['ხ'],A,B),!.
/* ზმნის რიცხვის გამოცნობა */
dashla_r(A,['m',B):-sheert(A,['m'],B),!.
dashla_r(A,[],A).
/* პირის ნიშნების გამოცნობა */
Y29kZT0xNTAwCglub2JyZWFrCglub3dhcm5pbmdzCgkKCWRvbWFpbnMKCWxpc3QgPSBjaGFyKgoJcHJlZCA9IHppcmkobGlzdCwgaW50ZWdlciwgaW50ZWdlciwgaW50ZWdlciwgaW50ZWdlcikKCglwcmVkaWNhdGVzCm5vbmRldGVybSBzX2Rhc2hsYShsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0LCBsaXN0KQpub25kZXRlcm0gZGFzaGxhX3oobGlzdCwgbGlzdCwgbGlzdCkKbm9uZGV0ZXJtIGRhc2hsYV9wKGxpc3QsIGxpc3QsIGxpc3QpCm5vbmRldGVybSBkYXNobGFfcihsaXN0LCBsaXN0LCBsaXN0KQpub25kZXRlcm0gZGFzaGxhX3BuKGxpc3QsIGxpc3QsIGxpc3QpCm5vbmRldGVybSBkYXNobGFfZHJvKGxpc3QsIGxpc3QsIGxpc3QpCm5vbmRldGVybSBkYXNobGFfdG4obGlzdCwgbGlzdCwgbGlzdCkKbm9uZGV0ZXJtIGRhc2hsYV9wcmVmKGludGVnZXIsIGxpc3QsIGxpc3QpCiAgc2hlZXJ0KGxpc3QsIGxpc3QsIGxpc3QpCiAgICAgICAgICAgc3RfbGlzdChTdHJpbmcsIGNoYXIsIGxpc3QpCm5vbmRldGVybSBzIAogICAgICAgICAgZGFzaGxhX2NvbnQobGlzdCwgbGlzdCwgbGlzdCkKICAgICAgICAgIApnb2FsIHMuCiAgICAgICAgICAgIGNsYXVzZXMKICAgICAgICAgIAogICAgICAgICAgczotcmVhZGxuKFgpLCB0aW1lKDAsMCwwLDApLCBzdF9saXN0KFgsQSxMKSwhLCAKICAgICAgICAgICAgICAgc19kYXNobGEoTCwgTDEsIEwyLCBMMywgTDUsIEw1MSwgTDYsIEw3LCBMOCwgTDkpLAogICAgICAgICAgICAgICBnZXRiYWNrdHJhY2soRCkKICAgICAgICAgICAgICAgdGltZShfLF8sUyxUKSwgd3JpdGUoIlxu4YOT4YOg4YOdPSIsIFMsICIuIixULCIg4YOs4YOQ4YOb4YOhXG4iKSwKICAgICAgICAgICAgICAgY3V0YmFja3RyYWNrKEQpLAogICAgICAgICAgICAgICB3cml0ZShYLCAiXG7hg5bhg5vhg5zhg5jhg6Hhg6zhg5jhg5zhg5g9IiBMMSwgIlxu4YOe4YOY4YOg4YOY4YOhX+GDnOGDmOGDqOGDkOGDnOGDmD0iLCBMMiwKICAgICAgICAgICAgICAgIlxu4YOe4YOg4YOU4YOk4YOY4YOl4YOh4YOYPSIsIEw5LCAiXG7hg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg5g9IiBMNTEsICJcbuGDl+GDlOGDm+GDmOGDoV/hg5zhg5jhg6jhg5Dhg5zhg5g9IiwgTDcsCiAgICAgICAgICAgICAgICJcbuGDk+GDoOGDnT0iLCBMNSwgIlxu4YOe4YOY4YOg4YOYX+GDoeGDo+GDpOGDmOGDpeGDoeGDmD0iLCBMMywgCiAgICAgICAgICAgICAgICJcbuGDoOGDmOGDquGDruGDleGDmD0iLCBMNCksISxmYWlsLgogICAgICAgICAgIHN0X2xpc3QoIiIsXyxbXSkuCiAgICAgICAgICAgc3RfbGlzdChYLEwsW0x8Wl06LWZyb250Y2hhcihYLEwsWSksc3RfbGlzdChZLCBMMSwgWikuCiAgICAgICAgICAgCi8qICAgIOGDluGDm+GDnOGDmOGDoSDhg6Thg53hg6Dhg5vhg5jhg6Eg4YOT4YOQ4YOo4YOa4YOQIOGDm+GDneGDoOGDpOGDlOGDm+GDlOGDkeGDkOGDkyAgICAqLwoKc19kYXNobGEoU2l0a3ZhLCBabW5pc19jaW5pLCBQaXJpc19uaXNocCwgUGlyaXNfbmlzaHMsIFJpY3h2aSwgCkRyb19raWxvLCBDb250LCBaaXJpLCBUZW1pc19uaXNoLCBEdm4sIFByZWYpOi0KICAgICAgICAgICBkYXNobGFfeihabW5pc19jaW5pLCBTdWYsIFNpdGt2YSksCiAgICAgICAgICAgCiAgICAgICAgICAgZ2V0YmFja3RyYWNrKEEpLCAKICAgICAgICAgICBkYXNobGFfcChQaXJpc19uaXNocCwgU3VmMSwgU3VmKSwKICAgICAgICAgICBnZXRiYWNrdHJhY2soUyksIAogICAgICAgICAgICAgICAgICAgICBkYXNobGFfcihTdWYyLCBSaWN4dmksIFN1ZjEpLAogICAgICAgICAgIGN1dGJhY2t0cmFjayhTKSwKICAgICAgICAgICBkYXNobGFfcG4oUGlyaXNfbmlzaHAsIFN1ZjMsIFBpcmlzX25pc2hzLCBTdWYyKSwKICAgICAgICAgICBkYXNobGFfZHJvKFN1ZjUxLCBUZW1pc19uaXNoLCBTdWY0KSwKICAgICAgICAgICBkYXNobGFfY29udChzdWY1LCBDb250LCBTdWY1MSwKICAgICAgICAgICBkYXNobGFfZHZuKFN1ZjYsIER2biwgU3VmNSwgRHZuX3QpLAogICAgICAgICAgIGdldGJhY2t0cmFjayhaKSwKICAgICAgICAgICB6aXJpKFppcmksIFppcmlzX3QsIFRuaXNoX3QsIFByZWZfdCwgR2FyX3QpLCBTdWY2KSwKICAgICAgICAgICAgICBjdXRiYWNrdHJhY2soWiksCiAgICAgICAgICAgICAgICAgICAgICBkYXNobGFfcHJlZihBLCBQcmVmLCBEdm4sIFN1ZjcpLCEuCiAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIAovKiAgICAgICAgICAgICAgIOGDluGDm+GDnOGDmOGDoeGDrOGDmOGDnOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6rhg5zhg53hg5Hhg5AgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCiAgICAgICAgICAgICAgICAgICAgICBkYXNobGFfeihbXSwgU2l0a3ZhLCBTaXRrdmEpLgogICAgICAgICAgIGRhc2hsYV96KFsn4YOTJywgJ+GDkCddLCBTdWYsIFNpdGt2YSk6LXNoZWVydChbJ+GDkycsICfhg5AnXSwKICAgICAgICAgICBTdWYsU2l0a3ZhKSwhLgogICAgICAgICAgIGRhc2hsYV96KFsn4YOQJywn4YObJywn4YOdJ10sTCxQKTotc2hlZXJ0KFsn4YOQJywn4YObJywn4YOdJ10sTCxQKSwhLgogICAgICAgICAgIGRhc2hsYV96KFsn4YOQJywn4YOmJ10sTCxQKTotc2hlZXJ0KFsn4YOQJywn4YOmJ10sTCxQKS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkCddLFN1ZixTaXRrdmEpOi1zaGVlcnQoWyfhg5AnXSxTdWYsU2l0a3ZhKSwhLgogICAgICAgICAgIGRhc2hsYV96KFsn4YObJywn4YOYJ10sTCxQKTotc2hlZXJ0KFsn4YObJywn4YOYJ10sTCxQKS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDmycsJ+GDnSddLEwsUCk6LXNoZWVydChbJ+GDmycsJ+GDnSddLEwsUCkuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6knLCfhg5AnLCfhg5snLCfhg50nXSxMLFApOi0KICAgICAgICAgICBzaGVlcnQoWyfhg6knLCfhg5AnLCfhg5snLCfhg50nXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6knLCfhg5AnXSxMLFA6LXNoZWVydChbJ+GDqScsJ+GDkCddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDqCcsJ+GDlCcsJ+GDmycsJ+GDnSddLEwsUCk6LQogICAgICAgICAgIHNoZWVydChbJ+GDqCcsJ+GDlCcsJ+GDmycsJ+GDnSddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDqCcsJ+GDlCddLEwsUCk6LXNoZWVydChbJ+GDqCcsJ+GDlCddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcsJ+GDkycsJ+GDkCddLEwsUCk6LQogICAgICAgICAgIHNoZWVydChbJ+GDkicsJ+GDkCcsJ+GDkycsJ+GDkCddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcsJ+GDkycsJ+GDmycsJ+GDnSddLEwsUCk6LQogICAgICAgICAgIHNoZWVydChbJ+GDkicsJ+GDkCcsJ+GDkycsJ+GDmycsJ+GDnSddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcsJ+GDmycsJ+GDnSddLEwsUCk6LQogICAgICAgICAgIHNoZWVydChbJ+GDkicsJ+GDkCcsJ+GDmycsJ+GDnSddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcsJ+GDnCddLEwsUCk6LXNoZWVydChbJ+GDkicsJ+GDkCcsJ+GDnCddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcsJ+GDoCcsJ+GDkycsJ+GDkCddLEwsUCk6LQogICAgICAgICAgIHNoZWVydChbJ+GDkicsJ+GDkCcsJ+GDoCcsJ+GDkycsJ+GDkCddLEwsUCksIS4KICAgICAgICAgICBkYXNobGFfeihbJ+GDkicsJ+GDkCcnXSxMLFApOi1zaGVlcnQoWyfhg5InLCfhg5AnXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6wnLCfhg5AnLCfhg5snLCfhg50nXSxMLFApOi0KICAgICAgICAgICBzaGVlcnQoWyfhg6wnLCfhg5AnLCfhg5snLCfhg50nXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6wnLCfhg5AnLCfhg6AnLCfhg5snLCfhg50nXSxMLFApOi0KICAgICAgICAgICBzaGVlcnQoWyfhg6wnLCfhg5AnLCfhg6AnLCfhg5snLCfhg50nXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6wnLCfhg5AnLCfhg6AnXSxMLFApOi0KICAgICAgICAgICBzaGVlcnQoWyfhg6wnLCfhg5AnLCfhg6AnXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6wnLCfhg5AnXSxMLFApOi1zaGVlcnQoWyfhg6wnLCfhg5AnXSxMLFApLCEuCiAgICAgICAgICAgZGFzaGxhX3ooWyfhg6gnLCfhg5cnLCfhg5AnXSxMLFApOi1zaGVlcnQoWyfhg6gnLCfhg5cnLCfhg5AnXSxMLFApLCEuCiAgICAgICAgICAgCiAgICAgICAgICAgCiAgICAgICAgICAgLyogICAgICAgICAgICAgICDhg57hg5jhg6Dhg5jhg6Eg4YOc4YOY4YOo4YOQ4YOc4YOYLeGDnuGDoOGDlOGDpOGDmOGDpeGDoeGDmOGDoSAg4YOS4YOQ4YOb4YOd4YOq4YOc4YOd4YOR4YOQICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgCiAgICAgICAgICAgZGFzaGxhX3AoW10sQSxBKS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDlCddLEEsQik6LXNoZWVydChbJ+GDlCddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDmyddLEEsQik6LXNoZWVydChbJ+GDmyddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDkicsJ+GDlSddLEEsQik6LXNoZWVydChbJ+GDkicsJ+GDlSddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDkiddLEEsQik6LXNoZWVydChbJ+GDkiddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDoSddLEEsQik6LXNoZWVydChbJ+GDoSddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDsCddLEEsQik6LXNoZWVydChbJ+GDsCddLEEsQiksIS4KICAgICAgICAgICBkYXNobGFfcChbJ+GDriddLEEsQik6LXNoZWVydChbJ+GDriddLEEsQiksIS4KICAgICAgICAgICAKICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgIOGDluGDm+GDnOGDmOGDoSDhg6Dhg5jhg6rhg67hg5Xhg5jhg6EgIOGDkuGDkOGDm+GDneGDquGDnOGDneGDkeGDkCAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgIAogICAgICAgICAgIGRhc2hsYV9yKEEsWydtJyxCKTotc2hlZXJ0KEEsWydtJ10sQiksIS4KICAgICAgICAgICBkYXNobGFfcihBLFtdLEEpLgogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgIOGDnuGDmOGDoOGDmOGDoSDhg5zhg5jhg6jhg5zhg5Thg5Hhg5jhg6EgIOGDkuGDkOGDm+GDneGDquGDnOGDneGDkeGDkCAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgIAoKCgo=