#45406: 求援助(75%)


yp11251120@yphs.tp.edu.tw (808-43杜波波)

學校 : 臺北市私立延平高級中學
編號 : 237257
來源 : [203.72.178.1]
最後登入時間 :
2025-04-09 17:47:38
o711. 1. 裝飲料 -- 2024年10月APCS | From: [203.72.178.1] | 發表日期 : 2025-02-26 18:02

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int w1,w2,h1,h2;
    cin>>w1>>w2>>h1>>h2;
    int v1=w1*w1*h1;
    int v2=w2*w2*h2;
    int vt=v1+v2;
    int max=0;
    int yuan[n];
    for(int i=0; i<n; i++)
    {
    cin>>yuan[i];
    int hx=0;
    if(yuan[i]>vt)
    {
    v1=0;
    v2=0;
    hx=h1+h2;
}
    if(v1!=0)
    {
    if(yuan[i]>v1) 
    {
    hx+=v1/(w1*w1);
    yuan[i]=yuan[i]-v1;
    hx+=yuan[i]/(w2*w2);
    v2=v2-yuan[i];
    v1=0;
}
if(yuan[i]<v1)
{
hx+=yuan[i]/(w1*w1);
v1=v1-yuan[i];
}
}
else if(v2!=0)
{
if(yuan[i]>v2) 
    {
    hx+=v2/(w2*w2);
    v2=0;
}
if(yuan[i]<v2)
{
hx+=yuan[i]/(w2*w2);
v2=v2-yuan[i];
}
}
if(hx>max) max=hx;
}
cout<<max<<endl;
}
 
#45409: Re: 求援助(75%)


leeguanhan0909@gmail.com (李冠翰)

學校 : 高雄市苓雅區復華高級中學國中部
編號 : 276558
來源 : [36.238.153.220]
最後登入時間 :
2025-04-05 17:05:47
o711. 1. 裝飲料 -- 2024年10月APCS | From: [36.238.181.12] | 發表日期 : 2025-02-26 21:01

#include
using namespace std;
int main()
{
    int n;
    cin>>n;
    int w1,w2,h1,h2;
    cin>>w1>>w2>>h1>>h2;
    int v1=w1*w1*h1;
    int v2=w2*w2*h2;
    int vt=v1+v2;
    int max=0;
    int yuan[n];
    for(int i=0; i
    {
    cin>>yuan[i];
    int hx=0;
    if(yuan[i]>vt)
    {
    v1=0;
    v2=0;
    hx=h1+h2;
}
    if(v1!=0)
    {
    if(yuan[i]>v1) 
    {
    hx+=v1/(w1*w1);
    yuan[i]=yuan[i]-v1;
    hx+=yuan[i]/(w2*w2);
    v2=v2-yuan[i];
    v1=0;
}
if(yuan[i]
{
hx+=yuan[i]/(w1*w1);
v1=v1-yuan[i];
}
}
else if(v2!=0)
{
if(yuan[i]>v2) 
    {
    hx+=v2/(w2*w2);
    v2=0;
}
if(yuan[i]
{
hx+=yuan[i]/(w2*w2);
v2=v2-yuan[i];
}
}
if(hx>max) max=hx;
}
cout<
}

兩個錯誤:
1. v1!=0和v2!=0下面的程式沒有考慮等號的情況。應改為if(yuan[i]>=v1),if(yuan[i]>=v2) 
2.vt的問題:

    (1)要動態更新目前的vt=v1+v2

    (2)yuan[i]>vt的計算方式應改為v1/(w1*w1)+v2/(w2*w2)
參考答案(有縮排)

小叮嚀:下次請別人幫忙時盡量縮排,方便閱讀。

 
#45428: Re: 求援助(75%)


yp11251120@yphs.tp.edu.tw (808-43杜波波)

學校 : 臺北市私立延平高級中學
編號 : 237257
來源 : [203.72.178.1]
最後登入時間 :
2025-04-09 17:47:38
o711. 1. 裝飲料 -- 2024年10月APCS | From: [203.72.178.1] | 發表日期 : 2025-03-03 17:14

#include
using namespace std;
int main()
{
    int n;
    cin>>n;
    int w1,w2,h1,h2;
    cin>>w1>>w2>>h1>>h2;
    int v1=w1*w1*h1;
    int v2=w2*w2*h2;
    int vt=v1+v2;
    int max=0;
    int yuan[n];
    for(int i=0; i
    {
    cin>>yuan[i];
    int hx=0;
    if(yuan[i]>vt)
    {
    v1=0;
    v2=0;
    hx=h1+h2;
}
    if(v1!=0)
    {
    if(yuan[i]>v1) 
    {
    hx+=v1/(w1*w1);
    yuan[i]=yuan[i]-v1;
    hx+=yuan[i]/(w2*w2);
    v2=v2-yuan[i];
    v1=0;
}
if(yuan[i]
{
hx+=yuan[i]/(w1*w1);
v1=v1-yuan[i];
}
}
else if(v2!=0)
{
if(yuan[i]>v2) 
    {
    hx+=v2/(w2*w2);
    v2=0;
}
if(yuan[i]
{
hx+=yuan[i]/(w2*w2);
v2=v2-yuan[i];
}
}
if(hx>max) max=hx;
}
cout<
}

兩個錯誤:
1. v1!=0和v2!=0下面的程式沒有考慮等號的情況。應改為if(yuan[i]>=v1),if(yuan[i]>=v2) 
2.vt的問題:

    (1)要動態更新目前的vt=v1+v2

    (2)yuan[i]>vt的計算方式應改為v1/(w1*w1)+v2/(w2*w2)
參考答案(有縮排)

小叮嚀:下次請別人幫忙時盡量縮排,方便閱讀。

謝謝



 
ZeroJudge Forum