---
# System prepended metadata

title: j537 工廠派遣

---

# j537 工廠派遣
## [題目連結](https://drive.google.com/open?id=12nNDXOU1WCmpXbfFRopkxUHoNQBTo_3w)
## 解題想法
* 用兩個陣列存不同內容(營收和人數)，將營收排序的同時將對應人數放置相同位子，工廠所需人數就會自高營收排至低營收。
## 解題心得
* 過程順利，但排序方法還能再精進。
## 程式碼
```cpp=01
#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	int a[n],p[n],i,j,h,ans=0;
	for(i=0;i<n;i++)scanf("%d%d",&a[i],&p[i]);
	scanf("%d",&h);
	for(i=0;i<n;i++){
		int max=i,tmp;
		for(j=i+1;j<n;j++)if(a[j]>a[max])max=j;
		tmp=a[i];
		a[i]=a[max];
		a[max]=tmp;
		tmp=p[i];
		p[i]=p[max];
		p[max]=tmp;
	}
	for(i=0;i<n;i++){
		if(p[i]<=h){
			ans++;
			h-=p[i];
		}
		else{
			if(h>0)ans++;
			break;
		}
	}
	printf("%d",ans);
	return 0;
} 
```