Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define NMax 102
- #define LMax 52
- #define VMax 1001
- using namespace std;
- ifstream fin("timbre.in");
- ofstream fout("timbre.out");
- char s[LMax+10],SR[NMax][LMax],SRmax[NMax][LMax];
- int n,C,Nrsr,NSmax,Cnt;
- short int val[NMax][VMax];
- int total[NMax];
- int Distincte(char *s)
- {
- for(int i=1;i<=Nrsr;++i)
- if(strcmp(SR[i],s)==0)
- return i;
- strcpy(SR[++Nrsr],s);
- return Nrsr;
- }
- int numar(char *s)
- {
- int nr=0;
- for(int i=0;s[i];++i)
- nr=nr*10+s[i]-'0';
- return nr;
- }
- int main()
- {
- int ls,poz,unde,valoare,maxim;
- fin>>C>>n;
- fin.get();
- for(int i=1;i<=n;++i)
- {
- fin.getline(s,LMax+10);
- ls=strlen(s);
- poz=ls-1;
- while(s[poz]!=' ')
- --poz;
- s[poz]=0;
- valoare=numar(s+poz+1);
- unde=Distincte(s);
- ++val[unde][valoare];
- }
- if(C==1)
- fout<<Nrsr<<'\n';
- else if(C==2)
- {
- for(int i=1;i<=Nrsr;++i)
- for(int j=1; j<VMax;++j)
- if(val[i][j]==1)
- ++Cnt;
- fout<<Cnt<<'\n';
- }
- else
- {
- for(int i=1;i<=Nrsr;++i)
- for(int j=1;j<VMax;++j)
- if(val[i][j])
- total[i]+=j;
- maxim=0;
- for(int i=1;i<=Nrsr;++i)
- if(total[i]>maxim)
- maxim=total[i];
- for(int i=1;i<=Nrsr;++i)
- if(total[i]==maxim)
- strcpy(SRmax[++NSmax],SR[i]);
- for(int i=1;i<NSmax;++i)
- for(int j=i+1;j<=NSmax;++j)
- if(strcmp(SRmax[i],SRmax[j])>0)
- swap(SRmax[i],SRmax[j]);
- for(int i=1;i<=NSmax;++i)
- fout<<SRmax[i]<<'\n';
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment