# 12578 - Smart Thief
## 題解:
用greedy法,
先將value陣列由大到小排序, 從最大的開始拿
當sum > remaining就離開迴圈, 並計算數量
## Code:
```cpp
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void* a, const void* b){
return *(int *)b - *(int *)a;
}
int main(){
int n, v[5005], rem = 0, sum = 0, ans = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++){
scanf("%d", &v[i]);
rem += v[i];
}
qsort(v, n, sizeof(int), cmp);
for (int i = 0; i < n; i++){
if(sum > rem)
break;
sum += v[i];
rem -= v[i];
ans++;
}
printf("%d\n", ans);
}
```
###### tags: `NTHUOJ`