viga
October 27, 2023, 2:14pm
1
My issue
what is the problem here?
My code
#include <iostream>
using namespace std;
int main() {
int t;
cin>>t;
while(t--){
int a,b,c,d;
cin>>a>>b>>c>>d;
int x=1;
while((a+x)%b!=(c+x)%d){
x++;
}
cout<<x<<endl;
}
return 0;
}
Problem Link: FIND_X Problem - CodeChef
@viga
brute force will not work for this problem .
plzz refer the following solution for better understand of optimal solution
#include <iostream>
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main() {
// your code goes herei
int t;
cin>>t;
while(t--)
{
ll a,b,c,d;
cin>>a>>b>>c>>d;
ll r1,r2;
r1=a%b;r2=c%d;
ll d1=b-r1,d2=d-r2;
if(d1>1 && d2>1)
{
cout<<"1"<<endl;
}
else if(d1==d2)
{
cout<<"1"<<endl;
}
else
{
// ll i=1,m1=min(b,d);
//// a++;c++;
// while(1)
// {
// if((a+i)%b==(c+i)%d)
// {
// cout<<i<<endl;
// break;
// }
// else
// {
// i++;
// }
// }
ll g1=__gcd(b,d);
ll l1=(b*d)/g1;
cout<<(l1-r1)<<endl;
}
}
return 0;
}