https://www.acmicpc.net/problem/20305

이문제에서 코든데



ll fibo[1000010];


int main() {

fibo[1] = fibo[2] = 1;

for (int i = 3; i < 1000010; i++) {

fibo[i] = fibo[i - 1] + fibo[i - 2];

fibo[i] %= INF;

}

cin >> n>>q;

vector <ll> a(n+10, 0);

while (q--) {

ll l, r;

cin >> l >> r;

a[l] += 1;

a[r + 1] -= fibo[r - l + 2];   <-------------------------------- 여기

a[r + 2] -= fibo[r - l + 1];   <-------------------------------- 여기

a[l] %= INF;

a[r+1] %= INF;

a[r+2] %= INF;

}

for (int i = 2; i <= n; i++) {

a[i] += a[i - 1] + a[i - 2];

a[i] %= INF;

}

for (int i = 1; i <= n; i++) {

cout << a[i] << ' ';

}

}

이건 틀렸다 나오는데 <여기> 부분을 a[r+1]=mod-fibo[r-1+2]로 고치면 맞아 

왜그런걸까???