VJ F - Dubious Cyrpto 7.28
#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
/*
Input
2
4 6 13
2 3 1
Output
4 6 5
2 2 3
n*a=m+c-b
用m%a,余数就是c-b
而a范围是从l~r
第二种情况:
4 5 1
n*a=m+c-b
n*4=1+3
右边应该补3,而取余得到的是1(s=m=1),要用a-s得到3
*/
int main()
{
speed_up;
int t,l,r,s;
ll m;
cin>>t;
while(t--)
{
cin>>l>>r>>m;
for(int i=l;i<=r;i++)
{
s=m%i;
//cout<<m%i<<endl;
if(s<=r-l&&m/i!=0)
{
cout<<i<<" "<<s+l<<" "<<l<<endl;//此时c<b,让c等于左边界,b比它大s,这样差就为s
break;
}
else if(i-s<=r-l)
{
cout<<i<<" "<<r-(i-s)<<" "<<r<<endl;//此时c>b,让c等于右边界,
break;
}
}
}
}

浙公网安备 33010602011771号