some algorithm program