初级光能
题目链接: 酷町堂:1246
1246 两车同库
经验值:800 时间限制:1000毫秒 内存限制:128MB
题目描述 Deion
某车库可停放有摩托车和小轿车两种类型的车,摩托车两个轮子,小轿车四个轮子。已经知道了车库里面轮子的总数X,问车库里面至少有多少辆车,至多有多少辆车。
输入描述 Input Deion
输入一行,一个正整数X。(X<32768)
输出描述 Output Deion
输出一行, 包含两个正整数,第一个是最少的车数,第二个是最多的车数,两个正整数用一个空格分开。如果没有满足要求的答案,则输出两个0,用一个空格隔开。
样例输入 Sample Input
40
样例输出 Sample Output
10 20
40分代码:
#include<iostream>
#include<cmath>
using namespace std;
/*
【题目分析】
摩托车两个轮子,小轿车四个轮子,有x个轮子,最少几辆车,最多几辆车
【做题思路】
枚举i(小轿车数量)
j(摩托车数量)= (x-i*4)/2
如果 i+j==x
改变标志位
最大值和最小值和i+j比较
如果 标志位是true
输出最小值 最大值
否则
输出0 0
*/
int x,maxn=-0x3f3f3f3f,minn=0x3f3f3f3f;
int cnt;
int main(){
cin>>x;
for(int i=0;i<=8192;i++){
int j=(x-i*4)/2;
if(i+j<=0&&(i<0||j<0)){
continue;
}
if(i*4+j*2==x){
maxn=max(maxn,i+j);
minn=min(minn,i+j);
cnt++;
}
}
if(cnt){
cout<<minn<<" "<<maxn;
}else{
cout<<0<<" "<<0;
}
return 0;
}