【 OJ 】买书

买书

  小李想去书店买几本书。正巧书店有促销活动:每买 3 本书,3 本书中价格最便宜的一本免费。也就是说,蒜头君可以把每 3 本书分一组来购买,每组价格最便宜的一本是免费的。

  现在蒜头君计划买 n 本书,已知每本书的价格,请问蒜头君最少需要花多少钱。

  输入第一行是一个正整数 N(N≤100,000),表示蒜头君一共想买 N 本书。

  接下来输入 N 行,每行输入一个正整数 Ci(Ci≤100,000),表示每本书的价格。

  输出一行,输出一个整数,表示蒜头君最少需要花的钱。

7
10
3
2
4
6
4
9
29
暴力:(会超时)
 1 #include <stdio.h>
 2 
 3 int main(){
 4     int n;
 5     int i = 0,j,k;
 6     int temp;
 7     int a[100000];
 8 
 9     scanf("%d",&n);
10     while(i<n){
11         scanf("%d",&a[i]);
12         i++;
13     }
14     for(j = 0; j < i; j++){
15         for(k = 0; k < i - j - 1; k++){
16             if(a[k] < a[k+1]){
17                 temp   = a[k+1];
18                 a[k+1] = a[k];
19                 a[k]   = temp;
20             }
21         }
22     }
23     temp = 0;
24     for(j = 0; j < i; j++){
25         if((j+1) % 3 != 0)
26             temp += a[j];
27     }
28     printf("%d",temp);
29     return 0;
30 }

 

posted @ 2017-12-13 11:26  Arrack丶  阅读(270)  评论(0编辑  收藏  举报