ulvis.paste.net

Paste Search Dynamic
Recent pastes
push
  1.  
  2.  
  3. pedef struct{
  4.         int pos,cnt;
  5. }data;
  6.  
  7. data queue[100005];
  8. int f,r;
  9. char visit[100001];
  10.  
  11. int push(data t){
  12.         if(t.pos<0||t.pos>100000)return 0;
  13.         if(visit[t.pos]++||r>100004)return 0;
  14.         queue[r++]=t;
  15.         return 1;       
  16. }
  17. data pop(){
  18.         data fail={-1,-1};
  19.         if(f==r)return fail;
  20.         return queue[f++];
  21. }
  22.  
  23. int main(){
  24.         int n,k,flag=0,m=100000;
  25.         scanf("%d%d",&n,&k);
  26.         data temp={n,0};
  27.         push(temp);
  28.         for(data temp2;f-r;){
  29.                 temp=pop();
  30.                 printf("%d)%d\n",temp.cnt,temp.pos);
  31.                 if(temp.cnt<=m&&temp.pos==k){
  32.                         flag++;
  33.                         m=temp.cnt;
  34.                 }
  35.                 if(!flag){
  36.                         temp2.cnt=temp.cnt+1;
  37.                         temp2.pos=temp.pos-1;push(temp2);
  38.                         temp2.pos=temp.pos+1;push(temp2);
  39.                         temp2.pos=temp.pos*2;push(temp2);
  40.                 }
  41.         }
  42.         printf("\n%d",flag);
  43.         return 0;
  44. }
Parsed in 0.005 seconds