浙江农林大学2021年新生杯程序设计竞赛(同步赛)I题
原题链接
最后忘了判断积分小于0时应该让其等于0,太菜了我,呜呜呜呜
代码附上
#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef long long ll;
typedef pair<int,int> PII;
const int N=1e5+10;
int main()
{
IOS;
int n,p,q,k,d,a;
double ans=0,kda[10];
cin>>n>>p>>q;
for(int i=0;i<n;i++)
{
int ksum=0,dsum=0;
for(int j=0;j<5;j++)
{
cin>>k>>d>>a;
if(d==0) kda[j]=99999;
else kda[j]=(k+a)*1.0/d;
ksum+=k;
dsum+=d;
}
bool flag1=true;
for(int j=1;j<5;j++)
{
if(kda[0]<kda[j])
{
flag1=false;
break;
}
}
if(ksum>=dsum)
{
if(flag1) ans+=2*p;
else ans+=p;
}
else
{
if(!flag1&&ans>=q) ans-=q;
else if(!flag1&&ans<q)ans=0;//别忘了这个点
}
if(ans>=100)
{
puts("YES");
return 0;
}
}
puts("NO");
return 0;
}
太菜了我