// "bool", "NoneType", "true", "false", "type", "None", "int", "string", "print"
a = 2.71828;
b = 3.1415926;
print(a, type(a), string(a) + "<<", int(a) + 10000);
print(a + b, a * b, a + b <= a * b, a + float(20), float(100) / float(1000));
class DisjointSet {
fn __init__(self, n) {
self.data = [];
idx = 0;
while idx < n {
self.data.append(-1);
idx = idx + 1;
}
return self;
}
fn __string__(self) {
return "DisjointSet(" + string(self.data) + ")";
}
fn find(self, idx) {
if self.data[idx] < 0 {
return idx;
}
self.data[idx] = self.find(self.data[idx]);
return self.data[idx];
}
fn union(self, a, b) {
fa = self.find(a);
fb = self.find(b);
if fa == fb {
return None;
}
if self.data[fa] < self.data[fb] {
self.data[fa] = self.data[fa] + self.data[fb];
self.data[fb] = fa;
}
else {
self.data[fb] = self.data[fb] + self.data[fa];
self.data[fa] = fb;
}
}
}
s = DisjointSet(10);
s.union(1, 2);
s.union(1, 5);
print(s);
s = "Hello World!";
s1 = s[0, 5];
print(s, s1, s[s.len() - 1]);
arr = [1, 2, 3, 4, 5];
arr1 = arr[1, arr.len()];
print(arr, arr1);
arr1[0] = 100;
print(arr, arr1);
arr[1] = 1000;
print(arr, arr1);
a = 100;
b = a;
print(a, b);
a = 300;
print(a, b);
a = "12";
b = "34";
a = int(a + "00" + b);
print(a, a * 2);
arr = [1, 2, 3, 4, 5];
arr[3] = "IEEE";
arr.append("SJTU");
print(arr);
print(arr.pop(), arr.pop(), arr);
class A {
fn __init__(self, a) {
self.a = a;
return self;
}
fn iadd(self, d) {
self.a = self.a + d;
}
fn __string__(self) {
return self.__name__ + "[[" + string(self.a) + "]]";
}
fn __call__(self, t) {
return self.a * t;
}
}
a = A(100);
print(a.iadd(11));
print(a, string(a), string(a).len());
print(a(3));
hello_world = "Hello World!";
hello_world.author = "HellOwhatAs";
fn init() {
fn ret() {
print(hello_world, "by", hello_world.author, "\n");
}
return ret;
}
init()();
fn fib(x) {
if x <= 1 { return x; }
return fib(x - 1) + fib(x - 2);
}
print(fib(20));
cnt = 10;
while cnt > 0 {
print(cnt, "WhileDB");
cnt = cnt - 1;
}
print(true.__and__(true), bool.__or__(false, 1 == 2), true.__type__(""));
print(print(type(NoneType)));
print(int);
print(string);
print(string(bool));
print("OK");
print(string(string));
if true {
a = 1234;
b = 123;
result = 1234 - b * 10;
tmp = (result <= 4) && true;
print(tmp);
print(int(!tmp) != int(tmp) == true);
print(result);
}
if 1001011 {
print("ALWAYS");
}