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;
            }
        }
    }
}

posted @ 2020-07-28 09:30  SyrupWRLD  阅读(159)  评论(0)    收藏  举报