ZOJ 3607Lazier Salesgirl(greed)

来源:互联网 发布:大数据云计算培训 编辑:程序博客网 时间:2024/06/05 11:06

讲道理应该是有O(n)的方法的  但是wa了


#include<iostream>#include<cstdio>#include<set>#include<string>#include<string.h>#include<cstring>#include<vector>#include<map>#include<queue>#include<stack>#include<cctype>#include<algorithm>#include<sstream>#include<utility>#include<cmath>#include<functional>#define mt(a) memset(a,0,sizeof (a))#define fl(a,b,c) fill(a,b,c)#define SWAP(a,b,t) (t=a,a=b,b=t)#define inf 1000000000+7using namespace std;typedef long long ll;double cost[1200];double come[1200];double wa[1200];int main(){int T;cin >> T;while (T--){int n;mt(come);mt(wa);cin >> n;for (int i = 1; i <= n; i++)scanf("%lf", &cost[i]);for (int i = 1; i <= n; i++){scanf("%lf", &come[i]);wa[i] = max(come[i] - come[i - 1], wa[i - 1]);}double ans = 0, ave = 0;for (int i = 1; i <= n; i++){double time = wa[i], nall = 0; int peo = 0;for (int j = 1; j <= n; j++){if (wa[j] > time)break;nall += cost[j];peo++;}if (nall / peo > ave){ ave = nall / peo; ans = time; }else if (nall / peo == ave&&ans > time)ans = time;}printf("%.6lf %.6lf\n", ans, ave);}return 0;}


0 0