CF1679A 题解
Jerrlee✅
2022-05-16 20:04:43
## 题意
你有一些公交车,可以是 $4$ 轮的,也可以是 $6$ 轮的。现在给你轮子总数,求车辆数量可能的最小值和最大值。
## 思路
首先,如果车轮数为奇数,肯定拼会多出至少一个轮子,否则一定可以拼出来。
但当 $n$ 小于 $4$ 时,肯定一辆车也拼不出来。
然后其余情况分类讨论即可。
1. 求最小值,要使车尽量为 $6$ 轮,否则再拆开六轮的车拼出四轮($n$ 除以 $6$ 余 $2$ 时,拆开一辆六轮车,组成两个 $4$ 轮的,余 $4$ 时可以直接拼出一个 $4$ 轮车);
2. 求最大值,要使车尽量为 $4$ 轮,否则再拆开四轮的车拼出六轮($n$ 除以 $4$ 余 $2$ 时,拆开一辆四轮车,组成一辆 $6$ 轮车)。
记得开 `long long`。
## 代码
```cpp
#include<iostream>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long n;
cin>>n;
if(n==4){cout<<"1 1\n";continue;}
if(n==6){cout<<"1 1\n";continue;}
if(n<4||n%2!=0){cout<<"-1\n";continue;}
if(n%6==0) cout<<n/6<<" ";
else if(n%6==2) cout<<(n-2)/6+1<<" ";
else cout<<(n-4)/6+1<<" ";
if(n%4==0) cout<<n/4<<endl;
else cout<<(n-2)/4<<endl;
}
}
```
[AC 记录(洛谷)](https://www.luogu.com.cn/record/75776852)
[AC 记录(CF)](https://codeforces.com/contest/1679/submission/157252959)