

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
int n,a[100000],dem=0,x;
int b[5];
int main()
{
freopen("Taxi.inp","r",stdin);
freopen("Taxi.out","w",stdout);
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
if(a[i]==1){
b[1]++;
}
if(a[i]==2){
b[2]++;
}
if(a[i]==3){
b[3]++;
}
if(a[i]==4){
dem++;
}
}
if(b[1]>b[3]){
dem+=b[3];
b[1]-=b[3];
}
else if(b[3]>=b[1]){
dem+=b[3];
b[1]=0;
}
dem+=b[2]/2;
b[2]=b[2]%2;
if(b[2]!=0 and b[1]!=0){
x=b[2]*2+b[1];
if(x>0 and x<=4)
dem++;
else{
dem+=(1+x/4);
}
}
cout<<dem<<'\n';
}
Hãy giúp mọi người biết câu trả lời này thế nào?
/******************************
* @#author : DyIuWhite
* @#date : oo / oo / oo *
*******************************/
#include<bits/stdc++.h>
#define foru(i,a,b) for(int i=a;i<=b;i++)
#define TN "horse"
using namespace std;
long long n,rs=0,a[100009],dem[10],i,o=0;
int main()
{
if(fopen(TN".inp","r"))
{
freopen(TN".inp","r",stdin);
freopen(TN".out","w",stdout);
}
cin>>n;
foru(i,1,n){
cin>>a[i];
dem[a[i]]++;
}
rs=dem[4];
if(dem[3]<=dem[1])
{
rs+=dem[3];
dem[1]-=dem[3];
rs+=(dem[2]/2);
if(dem[2]%2==0)
rs+=(dem[1]+3)/4;
else
{
rs+=1;
dem[1]=max(o,dem[1]-2);
rs+=(dem[1]+3)/4;
}
cout<<rs;
}
else
{
rs+=dem[1];
dem[3]-=dem[1];
rs+=((dem[2]+1)/2);
rs+=dem[3];
cout<<rs;
}
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
có code nào ngắn hơn và dễ hiểu hơn k ạ
đây là đơn giản nhất r á bn
mình mới lớp 8 nên nỏ hiểu đc
mik lớp 9
lm đơn giản thì ghép 2-2 1-3 thôi
ok
nhìn lại thì dài thật
dài tht
Bảng tin
1
175
0
test mẫu 1 đúng ko fen?