第二个if改成else 或者else if
by Karlis @ 2018-08-03 15:03:26
@[Karlis](/space/show?uid=70064) 貌似没什么用吧(逃
by TianZ @ 2018-08-03 15:16:03
@[TelFaded](/space/show?uid=108379) 我觉得您可以搞个long long
by TianZ @ 2018-08-03 15:16:50
献上我的代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,m,pi[5005],ai[5005],total;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>pi[i]>>ai[i];
for(int i=1;i<m;i++){
for(int j=i+1;j<=m;j++){
if(pi[i]>pi[j])swap(pi[i],pi[j]),swap(ai[i],ai[j]);
}
}
for(int i=1;i<=m;i++){
if(n>ai[i]){total+=ai[i]*pi[i];n-=ai[i];}
else {total+=n*pi[i];break;}
}
cout<<total;
return 0;
}
```
by TianZ @ 2018-08-03 15:17:07
@[天真、陈长生](/space/show?uid=67212) 两个if会重复判断的,改完已A
by Karlis @ 2018-08-03 15:18:38
@[Karlis](/space/show?uid=70064) 两个if条件相反,多判断没什么关系吧?毕竟执行了一个不可能在执行另一个了
by TianZ @ 2018-08-03 15:46:11
@[天真、陈长生](/space/show?uid=67212) 您真的确定“执行了一个不可能在执行另一个了”?
by Karlis @ 2018-08-03 15:49:20
@[Karlis](/space/show?uid=70064) 那么如何两个同时执行呢?同时执行的时候sum+q[i].a到底是>n还是=n还是<n呢?
by TianZ @ 2018-08-03 16:17:50
@[Karlis](/space/show?uid=70064) 自我感觉不用加else(虽然我不知道+else 会不会对)
by TianZ @ 2018-08-03 16:23:11
@[Karlis](/space/show?uid=70064) 咳咳,我好像忘了
>sum=sum+q[i].a,ans=ans+q[i].p*q[i].a;
by TianZ @ 2018-08-03 16:24:21