2016-07-13 6 views
-1

誰かが下のコードを確認するのに役立つだろうかと思いましたか?私はGoogle APAC 2017ラウンドAを試しましたが、最初の質問でトラップされました。リンクはhttps://code.google.com/codejam/contest/11274486/dashboardです。Google APAC 2017ラウンドA - 間違って

実際、私はいくつかの成果を挙げており、それらはすべて正しいと思われますが、オンラインジャッジはそう言っていません。誰かがコードをスキャンして議論したいと思えば、非常に感謝しています。ありがとう!

string A() 
{ 
    int N; 
    cin >> N; 
    cin.get(); 
    string leader, cur; 
    int i = 0, j = 0, L = 0, leaderLetterNum = 0; 
    set<char> letters; 
    for(i = 0; i < N; i++) 
    { 
     getline(cin, cur); 
     L = cur.empty() ? 0 : cur.length(); 
     for(j = 0; j < L; ++j) 
     { 
      if(cur[j] >= 'A' && cur[j] <= 'Z') letters.insert(cur[j]); 
     } 
     if(leader.empty() || letters.size() > leaderLetterNum) 
     { 
      leader.clear(); 
      leader = cur; 
      leaderLetterNum = letters.size(); 
     } 
     cur.clear(); 
     letters.clear(); 
    } 
    return leader; 
} 

void multiTest() 
{ 
    int T; 
    cin >> T; 
    int caseCount = 0; 
    while(caseCount++ < T) 
    { 
     cout << "Case #" << caseCount << ": " << A() << endl; 
    } 
    return; 
} 

int main(void) 
{ 
    multiTest(); 
    return 0; 
} 

答えて

0

あなたは条件に

を逃したネクタイがある場合は、名前がアルファベット順で早い来る人がリーダーです。

if(leader.empty() || letters.size() > leaderLetterNum || 
(letters.size() == leaderLetterNum && cur < leader)) 

代わりの

if(leader.empty() || letters.size() > leaderLetterNum) 
を使用してみてください
関連する問題