买书
小李想去书店买几本书。正巧书店有促销活动:每买 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 }