#40500: c++(2ms, 92KB)不用vector的解法


bobobo0413 (Andy)

學校 : 國立臺灣大學
編號 : 252359
來源 : [220.141.219.171]
最後登入時間 :
2024-11-22 19:07:15
f579. 1. 購物車 -- 2020年7月APCS | From: [42.79.78.130] | 發表日期 : 2024-05-25 21:46

解題報告:這題看到輸入蠻複雜的,應該不少人會用vector存,事實上這題不用存,只要判斷輸入a買入a,輸入-a賣出a,輸入b買入b,輸入-b賣出b,設定變數紀錄a,b最後的量,都大於0就ans++。while(1){                scanf("%d",&buy);        if(buy==0)                break;}這個是當輸入0,跳出迴圈。以下附上C和C++原始碼:

#include<stdio.h>
int main(){
int a,b,n,i,buy,ans=0;
scanf("%d%d%d",&a,&b,&n);
for(i=0;i<n;i++){
        int ad=0,bd=0;
        while(1){
                scanf("%d",&buy);
        if(buy==0)
                break;
    else if(buy==a)
ad++;
else if(buy==-a)
    ad--;
else if(buy==b)
    bd++;
    else if(buy==-b)
    bd--;
        }
        if(ad>0&&bd>0)
            ans++;
}
printf("%d\n",ans);
return 0;
}

 
ZeroJudge Forum