Frederick genç bir programcıdır. Bulabildiği tüm programlama yarışmalarına katılır ve her zaman favori programlama dili olan Fygon'da kod yazar. Ne yazık ki, algoritması asimptotik olarak en uygun olsa bile sık sık Time Limit Exceeded (Zaman Aşımı) sonucu alır. Bunun nedeni, Fygon yorumlayıcısının çok yavaş çalışmasıdır. Yine de Frederick, Fygon'u o kadar çok sever ki, çözümlerini zaman sınırına sığdırmak için asimptotik olmayan optimizasyonlara başvurur. İşini kolaylaştırmak için, sizden Fygon programının gerçekleştirdiği işlem sayısını tam olarak hesaplayan bir program yazmanızı istiyor.
Basitlik açısından, Fygon'da yalnızca iki tür ifade olduğunu varsayalım. Birincisi, hemen hemen her başka ifadenin yerine geçebilen lag ifadesidir. İkincisi ise for döngüsüdür:
for <variable> in range (<limit>):
<body>Burada <variable>, 'dan <limit> 'e kadar tüm değerleri alır. Fygon'da <variable>, 'dan 'ye kadar küçük bir Latin harfidir ve <limit>, ya daha önce tanımlanmış bir <variable> ya da pozitif bir tam sayı sabitidir. Döngünün gövdesi olan <body>, dört boşluk girintiyle yazılır ve en az bir ifade içerir.
Program, girdiyi değişkeninde alır. Bu değişken özel bir anlama sahiptir ve döngü değişkeni olarak kullanılamaz.
Göreviniz, verilen Fygon programı tarafından gerçekleştirilen lag işlemlerinin sayısını 'ye bağlı olarak ifade eden bir formül bulmaktır.
Bir Fygon programı içerir. Hiçbir iki döngü, sayaç olarak aynı değişkeni kullanmaz. range içinde kullanılan her değişken, ya 'dir ya da dış döngülerden birinde tanımlanmış bir değişkendir.
Program en fazla ifade içerir, bunlardan en fazla tanesi döngüdür. Tüm tam sayı sabitleri ile arasında (dahil) bir değerdedir.
Gerçekleştirilen lag işlemlerinin sayısını 'ye bağlı olarak veren formülü yazdırın. Formülün uzunluğu (boşluklar hariç) karakteri geçmemelidir ve formül aşağıdaki grameri sağlamalıdır:
<Expression> ::= <Product> (('+' | '-') <Product>)*
<Product> ::= <Value> ('*' <Value>)*
<Value> ::= 'n' | <Number> | '-' <Value> | '(' <Expression> ')'
<Number> ::= ['0'..'9']+ ('/' ['0'..'9']+)?Örnek 1