#include <cstdio> #include <iostream> using namespace std; long long m,t; int u,f,d,n; char s; int main() { cin>>m>>n>>u>>f>>d; u+=d; f*=2; //去加回的距离一起算 for (int i=1;i<=n;++i) { cin>>s; if (s=='u' || s=='d') t+=u; //若为坡,直接加 else t+=f; if (t>m) { cout<<i-1; //直到超过秒数 return 0; } } if (t<=m) cout<<n; return 0; }
3
30
2015
30
2015
Tyvj 1003 越野跑
3
30
2015
30
2015
Tyvj 1002 谁拿了最多奖学金
#include <iostream> #include <cstdio> using namespace std; string name,king; int n,avrg,grde,papr; char ofcl,west; long long tot,best,t; int main() { cin>>n; for (int i=0;i<n;++i) { t=0; cin>>name>>avrg>>grde; getchar(); ofcl=getchar(); getchar(); west=getchar(); getchar(); cin>>papr; if (avrg>80 && papr>0) t+=8000; if (avrg>85 && grde>80) t+=4000; if (avrg>90) t+=2000; if (avrg>85 && west=='Y') t+=1000; if (grde>80 && ofcl=='Y') t+=850; if (t>best) { best=t; king=name; } tot+=t; } cout<<king<<endl<<best<<endl<<tot; return 0; }
3
30
2015
30
2015
Tyvj 1001 第K极值
#include <cstdio> #include <algorithm> #include <cmath> using namespace std; int a[10000],m,n,k; int main() { scanf("%d%d",&n,&k); for (int i=0;i<n;++i) scanf("%d",&a[i]); sort(a,a+n); m=a[n-k]-a[k-1]; if (m<2) { printf("NO\n%d",m); return 0; } for (int i=2;i<=sqrt(m);++i) if (m%i==0) { printf("NO\n%d",m); return 0; } printf("YES\n%d",m); return 0; }