标签:
Description
Input
Output
Sample Input
Sample Output
1 #include <iostream> 2 using namespace std; 3 int work; 4 int sum=0; 5 struct w 6 { 7 int dl; 8 int score; 9 }a[1005]; 10 11 void sort(w *a) 12 { 13 for(int i=0;i<work-1;i++) 14 { 15 for(int j=i+1;j<work;j++) 16 if(a[j].score>a[i].score) 17 { 18 w t=a[j]; 19 a[j]=a[i]; 20 a[i]=t; 21 } 22 } 23 } 24 void insert(int *timeset,int pos,int value) 25 { 26 if(timeset[pos]==0) 27 timeset[pos]=value; 28 else if(timeset[pos]>value&&(pos-1)>0) 29 insert(timeset,pos-1,value); 30 else if(timeset[pos]>value&&(pos-1)<=0) 31 sum+=value; 32 else if(timeset[pos]<=value) 33 { 34 int t=timeset[pos]; 35 timeset[pos]=value; 36 if((pos-1)>0) 37 insert(timeset,pos-1,t); 38 else 39 sum+=t; 40 } 41 } 42 int main() 43 { 44 int N; 45 cin>>N; 46 for(int n=1;n<=N;n++) 47 { 48 sum=0; 49 cin>>work; 50 int maxdl=0; 51 for(int i=0;i<work;i++) 52 { 53 cin>>a[i].dl; 54 if(maxdl<a[i].dl) 55 maxdl=a[i].dl; 56 } 57 for(int i=0;i<work;i++) 58 cin>>a[i].score; 59 int *timeset=new int[maxdl+1]; 60 for(int i=0;i<maxdl+1;i++) 61 timeset[i]=0; 62 63 sort(a); 64 65 for(int i=0;i<work;i++) 66 insert(timeset,a[i].dl,a[i].score); 67 68 cout<<sum<<endl; 69 } 70 return 0; 71 }
解题报告 HDU1789 Doing Homework again
标签:
原文地址:http://www.cnblogs.com/verlen11/p/4234435.html