import java.io.*; import java.util.*; public class Translate { public static void main(String[] args) throws IOException { // read in the customers as points Scanner sc = new Scanner(new File(args[0])); int noCustomers = sc.nextInt(); Point[] customer = new Point[noCustomers]; int xMin = Integer.MAX_VALUE; int xMax = Integer.MIN_VALUE; int yMin = Integer.MAX_VALUE; int yMax = Integer.MIN_VALUE; double pointSize = 2.0; int k = 0; for (int i=0;i<noCustomers;i++){ int x = (int)(sc.nextDouble()); int y = (int)(sc.nextDouble()); xMin = Math.min(xMin,x); xMax = Math.max(xMax,x); yMin = Math.min(yMin,y); yMax = Math.max(yMax,y); boolean found = false; for (int j=0;j<k && !found;j++) found = customer[j].x == x && customer[j].y == y; if (!found) customer[k++] = new Point(x,y); } sc.close(); //System.out.println("range: ("+ xMin +","+ xMax +") ("+ yMin +","+ yMax +")"); /* for (Point p : customer){ int x = p.x - xMin; int y = p.y - yMin; if (x < 1000 && y < 1000) System.out.println(x +" "+ y); } */ // draw points /* StdDraw.clear(StdDraw.LIGHT_GRAY); StdDraw.setXscale(xMin, xMax); StdDraw.setYscale(yMin, yMax); StdDraw.show(0); for (int i=0;i<k;i++) StdDraw.filledCircle(customer[i].x,customer[i].y,pointSize); StdDraw.show(0); */ System.out.println(k); //for (int i=0;i<k;i++) System.out.println((customer[i].x - xMin) +" "+ (customer[i].y - yMin)); for (int i=0;i<k;i++) System.out.println(customer[i].x +" "+ customer[i].y); } }