Pagini recente » Cod sursa (job #360092) | Cod sursa (job #283208) | Cod sursa (job #2392945) | Cod sursa (job #2019484) | Cod sursa (job #504645)
Cod sursa(job #504645)
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
ifstream fin("reteta2.in");
ofstream fout("reteta2.out");
struct produs {
char nume[30];
int c;
};
int main() {
produs v[100]={{{0}},{0}},aux;
char s[2000],*p,*q;
int i,n=1,j,t=0,k,l;
fin.get(s,2000);
p=s;
l=strlen(s);
j=-1;
for(i=0;i<=l;i++)
if(s[i]!=' ') s[++j]=s[i];
l=j;
while(*p) {
while(*p&&!isalpha(*p)) p++;
if(*p) {
q=p;
while(*q&&isalpha(*q)) q++;
strncpy(v[n].nume,p,q-p);
v[n].c=atoi(q);
p=q+1;
while(*p&&isdigit(*p)) p++;
n++;
}
}
n--;
p=s;
for(i=1;i<l;i++)
if(s[i-1]==')'&&isdigit(s[i])) {
p=s+i;
t+=atoi(p);
}
fout<<t<<"\n";
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(strcmp(v[i].nume,v[j].nume)>0) {
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
fout<<v[1].nume<<" ";
k=v[1].c;
for(i=2;i<=n;i++)
if(strcmp(v[i].nume,v[i-1].nume)==0) k=k+v[i].c;
else {
fout<<k<<"\n";
fout<<v[i].nume<<" ";
k=v[i].c;
}
fout<<k;
return 0;
}