求助,pts10
查看原帖
求助,pts10
819577
FlyPancake楼主2024/1/3 16:37
#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
	ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int T; cin>>T;
	int n, k, a, b;
	while(T--){
		cin>>n>>k>>a>>b;
		if(k>n){
			cout<<0<<"\n";
			for(int i=1; i<=n; i++) cout<<i%2;
			cout<<"\n";
			continue;
		}
		ll tot = (n-1)/(k-1);
		ll sum1 = (n-k+1)*b;
		ll sum2 = tot*a;
		ll sum3 = sum2-a+(n-(tot*(k-1)))*b;
		ll minn = min(sum1, min(sum2, sum3));
		if(minn==sum1){
			cout<<sum1<<"\n";
			for(int i=1; i<=n; i++) cout<<i%2;
			cout<<"\n";
			continue;
		}
		if(minn==sum2){
			cout<<sum2<<"\n";
			int p = 0;
			for(int i=1; i<=n; i++){
				if(k==2) cout<<1;
				else if((i%(k-1)==0) && (i!=n)){
					cout<<p<<p;
					p ^= 1;
					i++;
				}
				else{
					cout<<p;
					p ^= 1;
				}
			}
			cout<<"\n";
			continue;
		}
		if(minn==sum3){
			cout<<sum3<<"\n";
			int p = 0;
			for(int i=1; i<=n; i++){
				if(k==2) cout<<1;
				else if((i%(k-1)==0) && (i/(k-1))<=tot-1){
					cout<<p<<p;
					p ^= 1;
					i++;
				}
				else{
					cout<<p;
					p ^= 1;
				}
			}
			cout<<"\n";
			continue;
		}
	}
	return 0;
}
2024/1/3 16:37
加载中...