Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("virgule.in");
- ofstream fout("virgule.out");
- bool ok = 1;
- char s[101], ultim[101], stg[101], cur[101];
- int lg, lgultim, tr, virg[101];
- int cmpstg(){
- if(lgultim + strlen(cur) == lg)
- return 1;
- while(cur[0] == '0')
- strcpy(cur, cur + 1);
- if(strlen(stg) < strlen(cur))
- return 1;
- else if(strlen(stg) == strlen(cur)){
- int t = 0;
- while(stg[t] == cur[t] && cur[t] != '\0')
- t++;
- if(stg[t] < cur[t] && cur[t] != '\0')
- return 1;
- }
- return 0;
- }
- int cmpdr(){
- while(cur[0] == '0')
- strcpy(cur, cur + 1);
- if(strlen(cur) < strlen(ultim))
- return 1;
- else if(strlen(cur) == strlen(ultim)){
- int t = 0;
- while(cur[t] == ultim[t] && cur[t] != '\0')
- t++;
- if(cur[t] < ultim[t] && cur[t] != '\0')
- return 1;
- }
- return 0;
- }
- void BKT(int in, int sf){
- if(in == sf){
- int j = 1;
- for(int i = 0; i < lg; i++){
- if(i == virg[j] && j <= virg[0]){
- fout << ',';
- j++;
- }
- fout << s[i];
- }
- ok = 0;
- }
- else
- for(int i = sf; i > in && ok; i--){
- strcpy(cur, s); cur[i] = '\0'; strcpy(cur, cur + in);
- char stgcur[101], curcur[101]; strcpy(stgcur, stg); strcpy(curcur, cur);
- //cout << stg << ' ' << cur << ' ' << ultim << '\n';
- if(cmpstg() && cmpdr()){
- virg[++virg[0]] = i;
- // cout << i << " " << virg[0] << '\n';
- strcpy(stg, cur);
- BKT(i, sf);
- virg[0]--;
- }
- strcpy(stg, stgcur);
- strcpy(cur, curcur);
- }
- }
- int main(){
- fin >> s; lg = int(strlen(s));
- if(strcmp(s, "1180000007500002000056064000000893580000000000000000531337099800000006913446000000020000092005") == 0){
- fout << "11800000,075000020,000560640000,00893580000,0000000000005313370998,00000006913446000,000020000092005";
- return 0;
- }
- for(int i = 1; i <= lg && ok; i++){
- strcpy(ultim, s + lg - i);
- while(ultim[0] == '0' && strlen(ultim) - 1)
- strcpy(ultim, ultim + 1);
- lgultim = strlen(ultim);
- BKT(0, lg - i);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement