Izrazi
시간 제한1초메모리 제한1024 MB
길이 15 이하의 숫자 문자열에서 더하기, 빼기, 곱하기를 각각 한 번 이하로 넣어 만들 수 있는 서로 다른 음이 아닌 결과의 개수를 센다.
문제
Neka je zadan string sastavljen samo od znamenki i to ne više od njih. Od zadanog stringa, ne mijenjajući poredak znamenki u njemu, kreiraj aritmetički izraz dodajući operatore između znamenki. Pri kreiranju izraza treba poštovati sljedeća pravila:
- Od operatora smiju se koristiti samo operator zbrajanja (
+), oduzimanja (-) i množenja (*); - svaki se operator smije iskoristit jednom ili nijednom;
- u string se mora dodati najmanje jedan operator;
- broj u izrazu (operand) ne smije početi nulom, osim ako je nula;
- rezultat tako dobivenog izraza mora biti nenegativan.
Napiši program koji će za zadani string odrediti koliko različitih rezultata možemo dobiti kreiranjem izraza na opisani način.
입력
U prvom je retku string iz teksta zadatka.
출력
U prvi redak ispiši cijeli broj iz teksta zadatka.
힌트
Opis prvog probnog primjera: Zadan je string “1504”. Od tog stringa, dodavanje operatora +, - i * možemo dobiti valjanih izraza. Uoči da se rezultat pojavljuje dva puta.
1+504 = 505150+4 = 154150-4 = 1461*504 = 504150*4 = 60015-0+4 = 1915-0*4 = 151+50-4 = 4715+0-4 = 111+50*4 = 20115+0*4 = 151*50-4 = 461*50+4 = 5415*0+4 = 41+5-0*4 = 61*5+0-4 = 11*5-0+4 = 91-5*0+4 = 5