1. 程式人生 > >PAT 乙級 1046 劃拳

PAT 乙級 1046 劃拳

stack alt cin tdi 分享圖片 name for lock mes

技術分享圖片

輸入樣例:
5
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15
輸出樣例:
1 2

思路是建立一張表,儲存劃拳的信息,一個一個地去比較統計。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>

using namespace std;

struct ImformationOfAandB
{
    int guessOfA,guessOfB;
    int resultOfA,resultOfB;
};

void count(ImformationOfAandB* p,int n);

int main()
{
    int n;
    cin>>n;
    ImformationOfAandB* p=new ImformationOfAandB[n];
    for(int i=0;i<n;i++)
        cin>>p[i].guessOfA>>p[i].resultOfA>>p[i].guessOfB>>p[i].resultOfB;
    count(p,n);
    delete p;
    return 0;
}

void count(ImformationOfAandB* p,int n)
{
    int countOfA=0,countOfB=0;
    for(int i=0;i<n;i++)
    {
        if(p[i].resultOfA==p[i].guessOfA+p[i].guessOfB && p[i].resultOfB!=p[i].guessOfA+p[i].guessOfB)
            countOfA++;
        else
        {
            if(p[i].resultOfA!=p[i].guessOfA+p[i].guessOfB && p[i].resultOfB==p[i].guessOfA+p[i].guessOfB)
                countOfB++;
        }
    }
    cout<<countOfB<<" "<<countOfA;
}

PAT 乙級 1046 劃拳