#include<algorithm> #include<iostream> #include<cstdio> #define N 600 using namespace std; typedef struct{ int dl=-1,t=-1,fl=0,val=0; } Game; //t代表做的时刻 dl代表deadline //定义结构体Game fl=0不做 //t=-1也代表不做 bool st(Game p,Game q){return p.val>=q.val;} //比较函数 //按从大到小 int select(int *p,int n){ int i; for(i=n;i>=0&&p[i]==1;i--); return i; } //返回选择时段 void dispG(Game *G,int n){ int i=0; for (i=0;i<n;i++) cout<<G[i].dl+1<<" "<<G[i].t+1<<" "<<G[i].val<<endl; } //打印Game int main(){ Game G[N]; int m,n,temp,temp2; while(cin>>m>>n) { int i,Time[N]={0};//某时刻做or不做 int sum=0; for (i=0;i<n;i++) {cin>>temp;G[i].dl=temp-1;} for (i=0;i<n;i++) cin>>G[i].val; sort(G,G+n,st); for (i=0;i<n;i++) { temp2=select(Time,G[i].dl); G[i].t=temp2; Time[temp2]=1; } /* dispG(G,n); for (i=0;i<n;i++) cout<<Time[i]<<endl; */ for(i=0;i<n;i++) { if(G[i].t==-1) sum+=G[i].val; } cout<<m-sum<<endl; } return 0; }
标签:dl,return,val,int,Game,智力,include,冲浪 From: https://www.cnblogs.com/lhf123/p/17305575.html