C언어:
int fun() { int ret = 0; for (int a = X1; a <= Y1; ++a) for (int b = X2; b <= Y2; ++b) ... for (int < N-th > = XN; < N-th > <= YN; ++< N-th >) ret = (ret + 1) % 1000000007; return ret; }파스칼:
function fun: longint; var ret: longint; a, b, ... , y, z: longint; begin ret := 0; for a := X1 to Y1 do for b := X2 to Y2 do ... for < N-th > := XN to YN do ret := (ret + 1) mod 1000000007; fun := ret; end;< N-th > 라는 건 N번째 알파벳 소문자라는 걸 의미합니다. Xi와 Yi의 자리에는 100 000보다 같거나 작은 양의 정수 혹은 이전에 사용된 알파벳 변수 중 하나가 들어갑니다.
예를 들어 X3의 경우 100 000보다 같거나 작은 양의 정수 혹은 세 번째 알파벳인 c보다 앞에 있는 a와 b가 들어올 수 있습니다.
우리는 위 함수의 리턴값을 계산해야합니다.
예제 1번 보충 설명:
C언어: int fun() { int ret = 0; for (int a = 1; a <= 2; ++a) for (int b = a; b <= 3; ++b) ret = (ret + 1) % 1000000007; return ret; } 파스칼: function fun: longint; var ret: longint; a, b: longint; begin ret := 0; for a := 1 to 2 do for b := a to 3 do ret := (ret + 1) mod 1000000007; fun := ret; end;
int fun() { int ret = 0; for (int a = X1; a <= Y1; ++a) for (int b = X2; b <= Y2; ++b) ... for (int < N-th > = XN; < N-th > <= YN; ++< N-th >) ret = (ret + 1) % 1000000007; return ret; } function fun: longint; var ret: longint; a, b, ... , y, z: longint; begin ret := 0; for a := X1 to Y1 do for b := X2 to Y2 do ... for < N-th > := XN to YN do ret := (ret + 1) mod 1000000007; fun := ret; end;
입력
The first line of input contains the positive integer N (1 ≤ N ≤ 26).
For the next N lines, the ith line contains Xi and Yi, separated with a space. If Xi and Yi are both
integer literals, then Xi ≤ Yi.
출력
The first and only line of output must contain the return value of the function.
입출력 예
입력
input
2
1 2
a 3
output
5
input
3
2 3
1 2
1 a
output
10
input
3
1 2
a 3
1 b
output
11
출처:coci
번역:ladown21
[질/답]
[제출 현황]
[푼 후(0)]