CF1679A 题解
题意
你有一些公交车,可以是
思路
首先,如果车轮数为奇数,肯定拼会多出至少一个轮子,否则一定可以拼出来。
但当
然后其余情况分类讨论即可。
-
求最小值,要使车尽量为
6 轮,否则再拆开六轮的车拼出四轮(n 除以6 余2 时,拆开一辆六轮车,组成两个4 轮的,余4 时可以直接拼出一个4 轮车); -
求最大值,要使车尽量为
4 轮,否则再拆开四轮的车拼出六轮(n 除以4 余2 时,拆开一辆四轮车,组成一辆6 轮车)。
记得开 long long。
代码
#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 记录(洛谷)
AC 记录(CF)