POJ 1036
#include<iostream> #include<algorithm> #define MAXN 205 using namespace std; struct node { int time; int money; int state; int ans; bool b; }; node _m[MAXN]; int n; void sort_f(); int compare(const void * i,const void * j); int main() { //freopen("acm.acm","r",stdin); int k; int t; int i; int j; int max = 0; int tem; bool boo = false; bool b1; cin>>n>>k>>t; _m[0].ans = 0; _m[0].money = 0; _m[0].state = 0; _m[0].time = 0; for(i = 0; i <= n; ++ i) { _m[i].ans = 0; _m[i].b = true; } for(i = 1; i <= n; ++ i) { cin>>_m[i].time; } for(i = 1; i <= n; ++ i) { cin>>_m[i].money; } for(i = 1; i <= n; ++ i) { cin>>_m[i].state; } sort_f(); for(i = 1; i <= n; ++ i) { if(_m[i].time < _m[i].state) { _m[i].b = false; continue; } for(j = 0; j < i; ++ j) { if( (abs(_m[i].state - _m[j].state) <= (_m[i].time - _m[j].time) )&& _m[j].b) { if(_m[i].ans < (tem = _m[i].money + _m[j].ans) ) { _m[i].ans = tem; } } } } for(i = 1; i <= n; ++ i) { if(max < _m[i].ans) { max = _m[i].ans; } } cout<<max<<endl; } void sort_f() { int i; int j; int k; for(i = 0; i <= n; ++ i) { for(j = i+1; j <= n; ++ j) { if(_m[j].time < _m[i].time) { iter_swap(&_m[i],&_m[j]); } } } }
关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。
技术网站地址: vmfor.com