// Codeforces Round #188 (Div. 2) C Perfect Pair
import java.io.*;
import java.util.*;
//Codeforces
public class Codeforces1 {
private static MyScanner in;
private static PrintStream out;
private static boolean LOCAL_TEST = false;
private static void solve() throws IOException {
long ops;
long x = in.nextLong();
long y = in.nextLong();
long m = in.nextLong();
ops = 0;
long sumxy;
while (x < m && y < m) {
if (x < 0 && y < 0)
break;
sumxy = x + y;
if (Math.signum(x) * Math.signum(y) < 0) {
long bx = Math.max(x, y);
long by = Math.min(x, y);
long dops = -by / bx;
ops += dops;
by += bx * dops;
x = bx;
y = by;
}
if (x >= m || y >= m)
break;
if (x < y) {
x = x + y;
} else {
y = x + y;
}
if ((x + y) > sumxy) {
ops++;
continue;
} else
break;
}
if (x < m && y < m)
ops = -1;
out.println(ops);
}
public static void main(String[] args) throws IOException {
// helpers for input/output
out = System.out;
try {
String cname = System.getenv("COMPUTERNAME");
if (cname != null)
LOCAL_TEST = true;
} catch (Exception e) {
}
if (LOCAL_TEST) {
in = new MyScanner("E:\\zin.txt");
} else {
boolean usingFileForIO = false;
if (usingFileForIO) {
// using input.txt and output.txt as I/O
in = new MyScanner("input.txt");
out = new PrintStream("output.txt");
} else {
in = new MyScanner();
out = System.out;
}
}
solve();
}
// =====================================
static class MyScanner {
BufferedReader bufReader;
StringTokenizer strTok;
public MyScanner() throws IOException {
bufReader = new BufferedReader(new InputStreamReader(System.in));
strTok = new StringTokenizer("");
}
public MyScanner(String inputFile) throws IOException {
bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(
inputFile)));
strTok = new StringTokenizer("");
}
String GetNextToken() throws IOException {
if (!strTok.hasMoreTokens())
strTok = new StringTokenizer(bufReader.readLine());
return strTok.nextToken();
}
public int nextInt() throws IOException {
return Integer.valueOf(GetNextToken());
}
public long nextLong() throws IOException {
return Long.valueOf(GetNextToken());
}
public double nextDouble() throws IOException {
return Double.valueOf(GetNextToken());
}
public String nextString() throws IOException {
return GetNextToken();
}
public String nextLine() throws IOException {
return bufReader.readLine();
}
public int countTokens() {
return strTok.countTokens();
}
public boolean hasMoreTokens() {
return strTok.hasMoreTokens();
}
}
}
No comments:
Post a Comment