문제
링크
풀이
#include <iostream>
#include <vector>
#include <cmath>
#define MOD 1000000000
using namespace std;
vector<long long> a(2000001, 0);
void precompute(void) {
a[1000000] = 0;
a[1000001] = 1;
for (int i=1000002; i<=2000000; i++) {
a[i] = (a[i-1] + a[i-2]) % MOD;
}
for (int i=999999; i>=0; i--) {
a[i] = (a[i+2] - a[i+1]) % MOD;
}
}
void solve(void) {
int n;
cin >> n;
cout << (a[n+1000000] > 0 ? 1 : (a[n+1000000] < 0 ? -1 : 0)) << "\n";
cout << abs(a[n+1000000]);
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
precompute();
solve();
return 0;
}