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]로 고치면 맞아
왜그런걸까???
% 연산자는 음수를 반환할 수 있습니다. -7 % 3 // -1 출력
오 그렇네요 감사합니당