1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 struct node 6 { 7 int value; 8 int ddl; 9 }; 10 node a[10010]; 11 bool day[10010]; 12 int n,ans; 13 bool cmp(node x,node y) 14 { 15 return x.value>y.value; 16 } 17 int main() 18 { 19 while (scanf("%d",&n)!=EOF) 20 { 21 memset(a,0,sizeof(a)); 22 memset(day,0,sizeof(day)); 23 for (int i=1;i<=n;i++) scanf("%d%d",&a[i].value,&a[i].ddl); 24 sort(a+1,a+n+1,cmp); 25 ans=0; 26 for (int i=1;i<=n;i++) 27 { 28 int p=a[i].ddl; 29 while (p>0 && day[p]==1) p--; 30 if (p!=0) 31 { 32 ans+=a[i].value; 33 day[p]=1; 34 } 35 } 36 printf("%d\n",ans); 37 } 38 return 0; 39 }
时间: 2024-10-10 06:18:44