Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define PB push_back
- #define ZERO (1e-10)
- #define INF (1<<29)
- #define CL(A,I) (memset(A,I,sizeof(A)))
- #define DEB printf("DEB!\n");
- #define D(X) cout<<" "<<#X": "<<X<<endl;
- #define EQ(A,B) (A+ZERO>B&&A-ZERO<B)
- typedef long long ll;
- typedef long double ld;
- typedef pair<ll,ll> pll;
- typedef vector<int> vi;
- typedef pair<int,int> ii;
- typedef vector<ii> vii;
- #define IN(n) int n;scanf("%d",&n);
- #define FOR(i, m, n) for (int i(m); i < n; i++)
- #define REP(i, n) FOR(i, 0, n)
- #define F(n) REP(i, n)
- #define FF(n) REP(j, n)
- #define FT(m, n) FOR(k, m, n)
- #define aa first
- #define bb second
- void ga(int N,int *A){F(N)scanf("%d",A+i);}
- #define MX (10000002)
- bitset<MX> C;
- int q[MX],qp[MX],b,e,N,L,R,T,p,u;
- void bfs(){
- C.reset(),C[*q=1]=1,b=-1,e=1;
- if(T==1)return (void)puts("0");
- while(++b<e){
- u=q[b],p=qp[b];
- if(u-L>1&&!C[u-L]){
- if(u-L==T)return (void)printf("%d\n",p+1);
- C[q[e]=u-L]=1,qp[e++]=p+1;
- }
- if(u+R<=N&&!C[u+R]){
- if(u+R==T)return (void)printf("%d\n",p+1);
- C[q[e]=u+R]=1,qp[e++]=p+1;
- }
- }
- puts("uh-oh!");
- }
- int main(void){
- IN(_)F(_)scanf("%d%d%d%d",&N,&L,&R,&T),bfs();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement