Pagini recente » Clasament winter2020 | Cod sursa (job #2085143) | Cod sursa (job #1361369) | Cod sursa (job #481085) | Cod sursa (job #2467579)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstring>
#define MAXN 1602
#define MAXLG 257
#define MAXNRF 102
#define uint unsigned int
using namespace std;
ifstream fin("dir.in");
ofstream fout("dir.out");
struct help{
char cv[MAXLG];
}out[MAXLG];
char st[MAXLG][MAXLG],prop[MAXN];
char temp[MAXLG];
int nrfiles=0;
int cont=0;
void save(){
int outind=0;
for(int i=1;i<=cont;i++){
for(uint j=0;j<strlen(st[i]);j++){
out[nrfiles].cv[outind]=st[i][j];
outind++;
}
out[nrfiles].cv[outind]=92;
outind++;
}
int maxx=strlen(temp);
for(int i=0;i<maxx;i++){
out[nrfiles].cv[outind]=temp[i];
outind++;
}
out[nrfiles].cv[outind]='\0';
}
void cpy(){
//cout<<st[cont]<<'\n';
st[cont][1]='\0';
int maxx=strlen(temp);
for(int i=0;i<maxx;i++){
st[cont][i]=temp[i];
}
st[cont][maxx]='\0';
}
bool comp(help a,help b){
if(strcmp(a.cv,b.cv)<0)
return 1;
return 0;
}
int main(){
//return 0;
fin.get(prop,MAXN);
int nrel=strlen(prop);
for(int i=0;i<nrel;){
int j=0;
temp[1]='\0';
bool ok=false;
while(i<nrel and prop[i]!='(' and prop[i]!=',' and prop[i]!=')'){
temp[j]=prop[i];
i++,j++;
ok=true;
}
temp[j]='\0';
fout<<temp<<'\n';
if(prop[i]=='('){
cont++;
st[cont][1]='\0';
cpy();
}
else if(ok==true){
nrfiles++;
save();
}
if(prop[i]==')'){
st[cont][1]='\0';
cont--;
}
i++;
}
fout<<nrfiles<<'\n';
sort(out+1,out+nrfiles+1,comp);
for(int i=1;i<=nrfiles;i++){
fout<<out[i].cv<<'\n';
}
return 0;
}