#include #include #define LGMAX 100 using namespace std; ifstream fin("virgule.in"); ofstream fout("virgule.out"); char s[LGMAX]; int sol[LGMAX], solmin[LGMAX]; int nrmin, lg; void afisare(); void bkt(int k); void copiaza(int k); int Compar(int inc1, int sf1, int inc2, int sf2); int main() {int i; fin>>(s+1); lg=strlen(s+1); for (i=lg-1; i>=1; i--) { sol[1]=i; bkt(2); } afisare(); return 0; } void bkt(int k) {int rez, i; rez=Compar(sol[k-1]+1,lg, sol[k-2]+1,sol[k-1]); if (rez<=0) return ; rez=Compar(solmin[nrmin]+1, lg, sol[k-1]+1, lg); if (rez>0) copiaza(k); else if (rez==0) { i=1; while (i0) copiaza(k); } //incerc sa mai pun o virgula dupa cifra de pe pozitia i for (i=lg-1; i>sol[k-1]; i--) { rez=Compar(sol[k-2]+1, sol[k-1], sol[k-1]+1,i); if (rez>=0) break; sol[k]=i; bkt(k+1); } } void afisare() {int i, k; k=1; for (i=1; i<=lg; i++) {fout<sf2-inc2+1) return 1; if (sf1-inc1+1sf1) return 0; if (s[i]