WA第4个点,求助。
#include<bits/stdc++.h>
using namespace std;
string myname,doit,name1,name2;
int i,top,tot,k,kk,m,n,j,mm;
struct Node{
string names;
int x;
}f[10001],h[10001];
bool cmp(Node x,Node y){return x.names<y.names;}
bool cmp1(Node x,Node y){return x.x>y.x||x.x==y.x&&x.names<y.names;}
int main(){
cin>>myname;
scanf("%d",&mm);getchar();
for (i=1;i<=mm;i++){
getline(cin,doit);n=doit.length();
name1="";
for (j=0;j<=n;j++)
if (doit[j]==' ') break;
else name1+=doit[j];
j++;k=j;
for (j=j;j<=n;j++)
if (doit[j]==' ') break;
kk=j-1;m=kk-k+1;
if (doit.substr(k,m)=="posted"){
name2="";
for (j=kk+2;j<=n;j++)
if (doit[j]==' ') break;
for (j=j+1;j<=n;j++)
if (doit[j]=='\'') break;
else name2+=doit[j];
f[++top].names=name1;f[top].x=15;
f[++top].names=name2;f[top].x=15;
}
else if (doit.substr(k,m)=="commented"){
name2="";
for (j=kk+2;j<=n;j++)
if (doit[j]==' ') break;
for (j=j+1;j<=n;j++)
if (doit[j]=='\'') break;
else name2+=doit[j];
f[++top].names=name1;f[top].x=10;
f[++top].names=name2;f[top].x=10;
}
else if (doit.substr(k,m)=="likes"){
name2="";
for (j=kk+2;j<=n;j++)
if (doit[j]=='\'') break;
else name2+=doit[j];
f[++top].names=name1;f[top].x=5;
f[++top].names=name2;f[top].x=5;
}
}
sort(f+1,f+top+1,cmp);
tot=1;
h[1].names=f[1].names;h[1].x=f[1].x;
for (i=2;i<=top;i++)
if (f[i].names!=f[i-1].names) h[++tot].names=f[i].names,h[tot].x=f[i].x;
else h[tot].x+=f[i].x;
sort(h+1,h+tot+1,cmp);
for (i=1;i<=tot;i++)
if (h[i].names!=myname) cout<<h[i].names<<endl;
return 0;
}
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢