NPSC補完計劃

登入註冊帳號.

請輸入帳號, 密碼以及預計登入時間
進階搜尋  

最新消息:

歡迎光臨NPSC補完計劃

+ NPSC補完計劃 » NPSC國中組 » NPSC2007國中組初賽
 [C++] 2007 NPSC 國中組初賽 B. 黑澀會美眉

作者 主題: [C++] 2007 NPSC 國中組初賽 B. 黑澀會美眉  (閱讀 1658 次)

bleed1979

  • 初級會員
  • **
  • 文章數: 28
    • 檢視個人資料
[C++] 2007 NPSC 國中組初賽 B. 黑澀會美眉
« 於: 七月 18, 2010, 08:12:07 am »

本題同ZJ的b076。

題目目的︰測資是   人名1 人名2 關係值   的格式,要輸出關係值最小並且為負數的那一組人名1和人名2。如果所有關係值都不是負數,輸出題目規定的特定字串。

解題技巧︰令一個變數值為0,然後依序讀入資料。如果關係值比此變數小,則紀錄人名和更新變數。最後再看變數是否改變來作輸出。

代碼: [選擇]
//  C++, ZJ b076, NPSC 2007 junior first

#include <cstdio>
#include <cstring>

#define NAME_LENGTH  11

int main ()
{
  int cases, r;
 
  r = scanf ( "%d", &cases );
 
  while ( cases-- )
  {
    int g;  // group for girls
   
    r = scanf ( "%d", &g );
   
    char girl1[NAME_LENGTH], girl2[NAME_LENGTH],
         worst1[NAME_LENGTH], worst2[NAME_LENGTH];
    int relation, worst_value = 0;
   
    // find the group of maximum negative value
    while ( g-- )
    {
      r = scanf ( "%s %s %d", girl1, girl2, &relation );
     
      if ( relation < worst_value )
      {
        worst_value = relation;
        strncpy(worst1, girl1, sizeof ( worst1 ) );
        strncpy(worst2, girl2, sizeof ( worst2 ) );
      }
    }
   
    if ( worst_value == 0 )
      printf ( "Are you kidding me?\n" );
    else
      printf ( "%s %s\n", worst1, worst2 );
  }
 
  return ( 0 );
}
記錄
+ NPSC補完計劃 » NPSC國中組 » NPSC2007國中組初賽
 [C++] 2007 NPSC 國中組初賽 B. 黑澀會美眉