思想:前缀和
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), m = sc.nextInt();
double[] baga = new double[n+1]; //坐标伸缩量的前缀和
double[] yalu = new double[n+1];//弧度变化量的前缀和
baga[0]=1;//预处理前缀和数组
for(int i=1;i<=n;i++){
int a = sc.nextInt();
double b = sc.nextDouble();
if(a==1){
baga[i]=baga[i-1]*b;
yalu[i]=yalu[i-1];
}
else {
baga[i] = baga[i-1];
yalu[i] = yalu[i-1]+b;
}
}
for(int i= 1;i<=m;i++){
int a = sc.nextInt(), b = sc.nextInt();
double x = sc.nextDouble(), y =sc.nextDouble();
double temp1 = x, temp2 =y;
temp1 = baga[b]/baga[a-1]*(x*Math.cos(yalu[b]-yalu[a-1])-y*Math.sin(yalu[b]-yalu[a-1]));
temp2 = baga[b]/baga[a-1]*(x*Math.sin(yalu[b]-yalu[a-1])+y*Math.cos(yalu[b]-yalu[a-1]));
System.out.printf("%.3f %.3f\n",temp1,temp2);
}
}
}