zoukankan      html  css  js  c++  java
  • toj 1721 Friends

    1721.   Friends

    Time Limit: 1.0 Seconds   Memory Limit: 65536K
     

    Total Runs: 80   Accepted Runs: 14



    You know this problem... several friends meet at the Hacienda (a rather fine restaurant) every Wednesday,have some drinks and fun in general until someone brings up the dreaded question: "So, where are we going tonight?"

    At this point basically two things can happen: Either take the Swedish solution or the Italian solution. The Swedish solution means that there is an absolutely embarrassing silence for about five minutes disturbed only once or twice by a muttered "Uh, I don't care...", then they finally agree (silently of course) to get totally drunk. The Italian solution includes (but is not limited to) lots of shouting, total mayhem in the Hacienda, and probably 'family' problems.

    But wait, yes - you are right. We are in Germany, so our friends will take the German solution, of course.That means: Voting!

    As you can imagine, the friends do not just vote for a certain place to go to depending on their current mood.It really depends much more on who is there on a given Wednesday. Here are the rules:

    1. Anne will always vote for going to the cinema.

    2. Bob will vote for going to the disco if Karin is there, too.

    3. Karin will vote for going to the disco if Charly is there, if Charly is not there but Anne is, Karin will vote for going to the cinema, if Charly and Anne are not there Karin will vote for going to the cocktail bar.

    4. Dave is one of those guys who never votes for anything.

    5. If Dave is there, Bob will vote for going to the cocktail bar.

    6. If Charly and Anne are there, both of them will vote for going to the cinema.

    7. Edward votes for going to the cocktail bar if Anne is there and Charly is not there, otherwise Edward votes for going to the cinema.

    8. If Edward is there, Bob will vote for going to the cocktail bar.

    9. Frank will vote for going to the cinema if neither Bob nor Anne are there, and Frank will vote for going to the disco if Anne is there.

    10. If Anne is not there, Bob will vote for going to the cocktail bar.

    For a given Wednesday, count the votes for each place from the friends who are there on that Wednesday.If no rule applies for a present friend or if several rules apply and require the friend to vote for different places, this friend abstains from voting on that Wednesday.

    Input

    The first line contains the number of scenarios (Wednesday meetings).

    For each scenario, there is one line containing the names of the present friends. Names are separated by single blanks and consist of letters only. The same name will not occur more than once on the same line.

    Output

    The output for every scenario begins with a line containing "Scenario #i:", where i is the number of the scenario starting at 1.

    Then for each scenario print a single line containing the place that received the most votes. Possible places are 'cinema', 'cocktail bar', and 'disco'. If none of those places receives more votes than the other two print 'stay at the Hacienda'.

    Terminate the output for the scenario with a blank line.

    Sample Input

    2
    Frank Dave
    Karin Frank
    
    Sample Output

    Scenario #1:
    cinema
    Scenario #2:
    stay at the Hacienda
    


    Source: TUD Programming Contest 2003
    Submit   List    Runs   Forum   Statistics

    #include <iostream>
    #include 
    <string>
    #include 
    <map>
    using namespace std;
    map
    <string,int>M;
    bool mark[8];
    int a,b,c;
    int main()
    {
        M[
    "Anne"]=1;
        M[
    "Bob"]=2;
        M[
    "Karin"]=3;
        M[
    "Charly"]=4;
        M[
    "Dave"]=5;
        M[
    "Edward"]=6;
        M[
    "Frank"]=7;
        
    int t,len,i,zz=1;
        cin
    >>t;
        getchar();
        
    string str,temp;
        
    while(t--)
        {
            getline(cin,str,
    '\n');
            len
    =str.length();
            str
    +=' ';
            
    int starti=0;
            
    for(i=1;i<=7;i++)
                mark[i]
    =false;
            
    for(i=0;i<=len;i++)
            {
                
    if(str[i]==' ')
                {
                    temp
    =str.substr(starti,i-starti);
                    starti
    =i+1;
                    mark[M[temp]]
    =true;
                }
            }
            a
    =0;
            b
    =0;
            c
    =0;
            
    if(mark[1])
            {
                a
    ++;
            }
            
    if(mark[2])
            {
                
    if(mark[3]&&!mark[5]&&!mark[6]&&mark[1])
                    b
    ++;
                
    else if(!mark[3]&&(mark[5]||mark[6]||!mark[1]))
                    c
    ++;
            }
            
    if(mark[3])
            {
                
    if(mark[4])
                    b
    ++;
                
    else if(!mark[4]&&mark[1])
                    a
    ++;
                
    else if(!mark[1]&&!mark[4])
                    c
    ++;
            }
            
    if(mark[4])
            {
                
    if(mark[1])
                    a
    ++;
            }
            
    if(mark[6])
            {
                
    if(mark[1]&&!mark[4])
                    c
    ++;
                
    else
                    a
    ++;
            }
            
    if(mark[7])
            {
                
    if(!mark[1]&&!mark[2])
                    a
    ++;
                
    else if(mark[1])
                    b
    ++;
            }
            printf(
    "Scenario #%d:\n",zz++);
             
    if(a>b&&a>c)
            {
                printf(
    "cinema\n");
            }
            
    else if(b>c&&b>a)
            {
                printf(
    "disco\n");     
            }
            
    else if(c>a&&c>b)
            {
                printf(
    "cocktail bar\n");
            }
            
    else
                printf(
    "stay at the Hacienda\n");
            printf(
    "\n");
        }
        
    return 0;
    }
  • 相关阅读:
    简单聊聊智能硬件的固件测试
    Regular进阶: 跨组件通信
    项目组建和磨合阶段常见的坑
    从需求到数据到改进,如何形成闭环
    请不要怪罪流程
    自备干货!如何有效的做竞品迭代分析
    css小点心
    java的collection集合
    java中的数组与集合相互转换
    java-增强for循环
  • 原文地址:https://www.cnblogs.com/forever4444/p/1459512.html
Copyright © 2011-2022 走看看