Bài : Đếm Hạt Sỏi 1 lần nữa Bình và An lại đặt ra bài toán để cùng nhau giải. Lần này bài toán An đặt ra cho Bình như sau : Trên con đường quê dài thẳng tắp, An kẻ một dãy N ô vuông liên tiếp và đánh chỉ số các ô vuông từ 1 đến N.Sau đó An đưa ra M cặp chỉ số dạng (i,j) với mỗi cặp chỉ số dạng (i,j) đó An yêu cầu Bình đi từ ô có chỉ số i đến chỉ số j và với mỗi ô đi qua thì đặt vào ô đó 1 hạt sỏi. Bình quyết định đố lại An, bình đưa ra K cặp chỉ số dạng (u,v) đề nghị An cho biết với mỗi cặp chỉ số mình đưa ra thì tổng các hạt sỏi trong các ô từ ô có chỉ số u đến ô có chỉ số v là bao nhiêu Yêu cầu: Hãy viết chương trình giúp An trả lời câu hỏi của Bình Dữ liệu vào: - dòng đầu là 1 số nguyên dương N( 2<=N<=10^5) - dòng tiếp ghi số nguyên dương M( 1<=M<=10^5) -M dòng tiếp theo mỗi dòng ghi 2 số nguyên dương i và j cho biết một cặp chỉ số mà An đưa ra ( 1<=i<j<=N) - dòng tiếp theo ghi số nguyên dương K (1<=K<=10^5) -K dòng tiếp theo mỗi dòng ghi 2 số nguyên dương u và v cho biết 1 cặp chỉ số mà Bình đưa ra (1<=u<v<N) vd DEMSOI.INP DEMSOI.OUT 10 8 3 14 1 10 10 2 8 4 7 3 1 4 3 7 6 10 GIÚP VỚI Ạ KO CẦN DÙNG FILE

2 câu trả lời

var a:array[0..10000007] of longint;
    m,n,k,i,u,v,j: longint;
    s : int64;
begin
 readln(n,m);
 for i := 1 to m do
  begin
   readln(u,v);
   a[u] := a[u] + 1;
   a[v+1] := a[v+1] - 1;
  end;
 for i := 2 to n do a[i] := a[i-1] + a[i];
 for i := 2 to n do a[i] := a[i-1] + a[i];
 readln(k);
 for i := 1 to k do
  begin
    readln(u,v);
    s := a[v]-a[u-1];
    writeln(s);
  end;
readln;
end.

type int = longint;
var a:array[0..100000] of int;
    i,j,n,m:int;
    k,u,v:int;
begin
    readln(n, m);
    for i:= 1 to m do
        begin
            readln(u, v);
            inc(a[u]);
            dec(a[v + 1]);
        end;
    for i:= 2 to n do inc(a[i], a[i - 1]);
    for i:= 2 to n do inc(a[i], a[i - 1]);
    readln(k);
    for i:= 1 to k do
        begin
            readln(u, v);
            writeln(a[v] - a[u - 1]);
        end;
end.