| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 580750 | Omar_Elgedawy | Lost in the cycle (IOI19_cycle) | C++14 | 1 ms | 208 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "cycle.h"
using namespace std;
void escape(int n) {
	if(n==2)return;
	if(jump(0)){
		if(jump(n/2)){
			return;
		}
		jump(n/2+n%2);
		int loc=0,one=0;
		int l=n/2,r=n-1;
		while(l<=r){
			int m=(r+l)/2;
			int dist;
			if(m>loc)
				dist=m-loc;
			else
				dist=((n-loc)+m)%n;
			loc=(loc+dist)%n;
			// cout<<l<<' '<<r<<' '<<m<<' '<<dist<<' '<<loc<<endl;
			if(jump(dist)){
				r=m-1;
				one=loc;
			}
			else{
				l=m+1;
			}
		}
		cout<<loc<<' '<<one<<' ';
		if(loc<one){
			loc=(loc+(one-loc))%n;
			jump(one-loc);
		}
		else if(loc>one){
			loc=(loc+(n-loc)+one)%n;
			jump(((n-loc)+one)%n);
		}
		jump(n/2);
	}
	else{
		int loc=0,one;
		int l=1,r=n/2+1;
		while(l<=r){
			int m=(r+l)/2;
			int dist;
			if(m>loc)
				dist=m-loc;
			else
				dist=(n-loc)+m;
			loc=(loc+dist)%n;
			// cout<<l<<' '<<r<<' '<<m<<' '<<dist<<' '<<loc<<endl;
			if(jump(dist)){
				r=m-1;
				one=loc;
			}
			else{
				l=m+1;
			}
		}
		// cout<<loc<<' '<<one;
		if(loc<one)
			jump(one-loc);
		else if(loc>one)
			jump((n-loc)+one);
		jump(n/2);
	}
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
