#8419: 請幫我找錯誤~


crazytim (天邊)

學校 : 臺北市立成功高級中學
編號 : 35518
來源 : [36.229.95.202]
最後登入時間 :
2023-06-26 22:46:23
d566. 秒殺率 -- jack1 | From: [111.251.138.158] | 發表日期 : 2013-12-02 22:26

 #include <iostream>

using namespace std;

int main()

{

int n;

while(cin>>n)

{

string v[n],f[n],ac[100];

int sec=0,cor=0;

int j=0,s=0;

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

{

j=0;

cin>>v[i]>>f[i];

for(int h=0;h<s;h++)

if(v[i]==ac[h])

{

j=1;

}

if(j==1)

continue;

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

{

if(v[i]==v[r])

{

j=1;

break;

}

}

if(f[i]=="AC")

{

if(j==0)

sec++,cor++;

else

cor++;

ac[s++]=v[i];

}

}

cout<<((sec+0.0)/cor)*100<<"%\n";

}

return 0;

}


第 3 測資點(0%): WA (line:1)
答案不正確

您的答案為: 100% 正確答案為: 0%
幫我找一下錯誤 謝謝! 
 
#8421: Re:請幫我找錯誤~


silithus (希利蘇斯)

學校 : 澳門培道中學
編號 : 33314
來源 : [60.246.116.246]
最後登入時間 :
2023-09-19 17:00:10
d566. 秒殺率 -- jack1 | From: [60.246.199.7] | 發表日期 : 2013-12-03 16:34

 #include

using namespace std;

int main()

{

int n;

while(cin>>n)

{

string v[n],f[n],ac[100];

int sec=0,cor=0;

int j=0,s=0;

for(int i=0;i

{

j=0;

cin>>v[i]>>f[i];

for(int h=0;h

if(v[i]==ac[h])

{

j=1;

}

if(j==1)

continue;

for(int r=0;r

{

if(v[i]==v[r])

{

j=1;

break;

}

}

if(f[i]=="AC")

{

if(j==0)

sec++,cor++;

else

cor++;

ac[s++]=v[i];

}

}

cout<<((sec+0.0)/cor)*100<<"%\n";

}

return 0;

}


第 3 測資點(0%): WA (line:1)
答案不正確

您的答案為: 100% 正確答案為: 0%
幫我找一下錯誤 謝謝! 

sec的計算方法出錯了,請注意,此處的解題紀錄"排在前面"的資料代表時間"越晚"(與ZJ實際狀況同)。

不知道你熟不熟悉STL,可參考以下代碼: 

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
// Submitted by Silithus @ Macau #include <iostream> #include <cstdio> #include <string> #include <set> #include <map>  using namespace std;  int main(void) {     int N;     bool status;     string user,res;      while( cin >> N) {         map<string, bool> fs;         set<string> ac;          while( N-- ) {             cin >> user >> res;             status = (res == "AC");             fs[user] = status;             if( status )                 ac.insert(user);         }          int fac = 0;         for(map<string,bool>::iterator it = fs.begin(); it != fs.end(); it++)             if( (*it).second )                 fac++;                  printf("%d%\n", fac*100/ac.size());     }      return 0; }
 
#8422: Re:請幫我找錯誤~


silithus (希利蘇斯)

學校 : 澳門培道中學
編號 : 33314
來源 : [60.246.116.246]
最後登入時間 :
2023-09-19 17:00:10
d566. 秒殺率 -- jack1 | From: [60.246.199.7] | 發表日期 : 2013-12-03 16:36

代碼格式有問題,重發一次大哭

#include <iostream>

#include <cstdio>

#include <string>

#include <set>

#include <map>

 

using namespace std;

 

int main(void)

{

    int N;

    bool status;

    string user,res;

 

    while( cin >> N) {

        map<string, bool> fs;

        set<string> ac;

 

        while( N-- ) {

            cin >> user >> res;

            status = (res == "AC");

            fs[user] = status;

            if( status )

                ac.insert(user);

        }

 

        int fac = 0;

        for(map<string,bool>::iterator it = fs.begin(); it != fs.end(); it++)

            if( (*it).second )

                fac++;

        

        printf("%d%\n", fac*100/ac.size());

    }

    return 0;

}

 

 
ZeroJudge Forum