#UVa:11369-Shopaholic

灆洢 2012-09-19 01:23:27

全部從最大的三樣開始買,買完再從剩餘裡面最大的三樣開始買,以此類推,即可得解。

C++(0.112)

/*******************************************************/
/* UVa 11369 Shopaholic                                */
/* Author: Maplewing [at] knightzone.studio            */
/* Version: 2012/09/19                                 */
/*******************************************************/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

bool cmp( int a, int b ){
  return a > b;
}

int main(){
  int t, n, item[20005], price;
  while( scanf( "%d", &t ) != EOF ){
    for( int i = 0 ; i < t ; i++ ){
      scanf( "%d", &n );
      for( int j = 0 ; j < n ; j++ )
        scanf( "%d", &item[j] );
      sort( item, item+n, cmp );

      price = 0;
      for( int j = 2 ; j < n ; j += 3 )
        price += item[j];
      printf( "%d\n", price );
    }
  }
  return 0;
}

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料