dalao,求助!!解法没错但数据一直爆掉,请问如何优化?

P1051 [NOIP2005 提高组] 谁拿了最多奖学金

### 何为“数据一直爆掉”?
by Chloris @ 2018-07-03 15:41:22


有一个三重循环,N个二重循环 @[石见](/space/show?uid=44122)
by ComeOver· @ 2018-07-05 10:31:21


@[Chloristendika](/space/show?uid=76527) 无输出,电脑卡死。。。
by 石见 @ 2018-07-05 10:33:16


@[duboyan](/space/show?uid=55206) ??循环太多?
by 石见 @ 2018-07-05 10:33:34


@[石见](/space/show?uid=44122) 怎么可能是循环太多。。。
by Chloris @ 2018-07-05 10:34:37


@[Chloristendika](/space/show?uid=76527) 额,那是为什么?不太懂。。。。谢谢
by 石见 @ 2018-07-05 10:37:44


@[石见](/space/show?uid=44122) ~~好吧~~ ~~当我没说~~
by ComeOver· @ 2018-07-05 10:40:55


@[duboyan](/space/show?uid=55206) ?????
by 石见 @ 2018-07-05 10:41:40


默默贴上代码 ```cpp #include <iostream> using namespace std; struct k{ string name; int num; int cla; char b; char x; int w; }; k h[105]; k l; int main(){ int best; int a[105]; int n; int sum=0; cin>>n; for(int i=0;i<n;i++){ a[i]=0; } for(int i=0;i<n;i++){ cin>>h[i].name>>h[i].num>>h[i].cla>>h[i].b>>h[i].x>>h[i].w; } for(int i=0;i<n;i++){ if(h[i].num>80&&h[i].w>=1) a[i]+=8000; if(h[i].num>85&&h[i].cla>80) a[i]+=4000; if(h[i].num>90) a[i]+=2000; if(h[i].num>85&&h[i].x=='Y') a[i]+=1000; if(h[i].cla>80&&h[i].b=='Y') a[i]+=850; } for(int i=0;i<n;i++){ sum+=a[i]; if(a[i]>best){ best=a[i]; l=h[i]; } } cout<<l.name<<endl; cout<<best<<endl; cout<<sum; return 0; } ``` 我用了struct
by ComeOver· @ 2018-07-05 10:45:35


我一开始也过不了 发现没有初始化
by ComeOver· @ 2018-07-05 10:46:13


| 下一页