付款問題 & 最小等待時間——算法作業 4.1 & 4.2,EOJ 1042 & 1048
付款問題
1
#include <stdio.h>
2
3
int main()
{
4
int money[ 7 ] =
{ 100, 50, 20, 10, 5, 2, 1 };
5
int td, m, i;
6
scanf( "%d", &td);
7
while ( td-- )
{
8
scanf( "%d", &m );
9
for ( i = 0; i < 6; ++i )
{
10
printf( "%d ", m / money[ i ] );
11
m %= money[ i ];
12
}
13
printf( "%d\n", m );
14
}
15
return 0;
16
}
17

2

3



4



5

6

7



8

9



10

11

12

13

14

15

16

17

最小等待時間
1
#include <iostream>
2
#include <vector>
3
#include <algorithm>
4
5
using namespace std;
6
7
typedef __int64 Tint;
8
9
vector<Tint> vec;
10
11
int main()
{
12
Tint td, n, i, x, ans, len;
13
vec.reserve( 10004 );
14
cin >> td;
15
while( td-- )
{
16
cin >> n;
17
vec.clear();
18
for( i = 0; i < n; ++i )
{
19
cin >> x;
20
vec.push_back( x );
21
}
22
sort( vec.begin(), vec.end() );
23
len = ans = 0;
24
for( i = 0; i < n; ++i )
{
25
ans += len;
26
len += vec[ i ];
27
}
28
cout << ans << endl;
29
}
30
return 0;
31
}
32

2

3

4

5

6

7

8

9

10

11



12

13

14

15



16

17

18



19

20

21

22

23

24



25

26

27

28

29

30

31

32

posted on 2011-05-16 15:31 coreBugZJ 閱讀(295) 評論(0) 編輯 收藏 引用 所屬分類: 課內作業