题目链接.
import java.util.*;
import java.math.*;
public class Main{
public static class node implements Comparable{
int a,b;
public node(int a,int b) {
this.a=a;
this.b=b;
}
public int compareTo(Object c){
node s=(node)c;
return (a*s.b+b)-(s.a*b+s.b);
}
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int n;
n=sc.nextInt();
BigInteger ans=sc.nextBigInteger();
node[] a=new node[20];
for(int i=0;i<n;i++) {
a[i]=new node(sc.nextInt(),sc.nextInt());
}
Arrays.sort(a,0,n);
/*for(int i=0;i<n;i++) {
System.out.println(a[i].a+" "+a[i].b);
}*/
for(int i=0;i<n;i++) {
ans=ans.multiply(BigInteger.valueOf(a[i].a));
ans=ans.add(BigInteger.valueOf(a[i].b));
}
System.out.println(ans);
}
}