#26311: Line 9008 討論區沒有的問題


qawl987 (中央地板好滑)

學校 : 不指定學校
編號 : 149523
來源 : [140.115.50.44]
最後登入時間 :
2021-10-05 20:06:04
a291. nAnB problem | From: [1.161.67.174] | 發表日期 : 2021-08-01 14:23

想了很久,看完討論區好像沒有這line9008的問題,把討論區的一些參考測資也試了也沒錯,故來詢問各位。

錯的是Line:9008

正確1A1B

我的1A2B

以下是我的想法

數字相同的前提,若位置不同i!=j則將k=1,若位置相同i==j則k=2且馬上break。最後根據k的值決定A還是B。如此會優先取A而非B。

看其他人是將判斷過的位置記錄下來。而我的想法是將答案跟輸入的index即i跟j反過來再測一次,之後再取A跟B值較小的那一方。因為我認為只是再找兩個數字之間的關係,誰是答案誰是輸入不重要。

而反過來是為了解決下面這種問題。

密碼1 1 1 5
輸入1 5 2 3
如果將上面當作答案會測出1A3B,如果將下面當作答案會測出1A1B,之後A取小的B也取小的就可以了。
我懷疑是我的cin處理的怪怪的。還請各位幫忙看看感謝。

#include <bits/stdc++.h>

using namespace std;

int main()

{

    ios_base::sync_with_stdio(false);

    cin.tie(0);

    string num;

    char c[4];

    char d[4];

    while(cin>>c[0]>>c[1]>>c[2]>>c[3])

    {

        num="";

        for(int i=0;i<4;i++)num = num+c[i];

        int time;

        cin>>time;

        while(time--)

        {

            int a1=0,b1=0,a2=0,b2=0,a=0,b=0;

            short k=0;

            string ans="";

            cin>>d[0]>>d[1]>>d[2]>>d[3];

            for(int i=0;i<4;i++)ans = ans+d[i];

            for(int i=0;i<4;i++)

            {

                k=0;

                for(int j=0;j<4;j++)

                {

                    if(num[i] ==ans[j]&& i!=j)k=1;

                    else if(num[i]==ans[j] &&i==j)

                    {

                        k=2;

                        break;

                    }

                }

                if(k==1)b1++;

                else if(k==2)a1++;

            }

            for(int i=0;i<4;i++)

            {

                k=0;

                for(int j=0;j<4;j++)

                {

                    if(num[j] ==ans[i]&& i!=j)k=1;

                    else if(num[j]==ans[i] &&i==j)

                    {

                        k=2;

                        break;

                    }

                }

                if(k==1)b2++;

                else if(k==2)a2++;

            }

            a=(a1>a2)?a2:a1;

            b=(b1>b2)?b2:b1;

            cout<<a<<'A'<<b<<'B'<<'\n';

        }

    }

}

 

 
#26321: Re:Line 9008 討論區沒有的問題


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [203.64.161.123]
最後登入時間 :
2024-07-29 10:02:49
a291. nAnB problem | From: [61.228.95.7] | 發表日期 : 2021-08-01 23:15

試試這個 正確是0A3B 你的是0A4B

 
#26322: Re:Line 9008 討論區沒有的問題


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [203.64.161.123]
最後登入時間 :
2024-07-29 10:02:49
a291. nAnB problem | From: [61.228.95.7] | 發表日期 : 2021-08-01 23:15

試試這個 正確是0A3B 你的是0A4B

1 2 3 2

2 3 1 1

 
ZeroJudge Forum