結果
問題 | No.510 二次漸化式 |
ユーザー |
|
提出日時 | 2017-04-28 23:47:13 |
言語 | C++11 (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 730 bytes |
コンパイル時間 | 602 ms |
コンパイル使用メモリ | 61,276 KB |
実行使用メモリ | 8,576 KB |
最終ジャッジ日時 | 2024-09-13 18:42:46 |
合計ジャッジ時間 | 5,160 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | TLE * 1 -- * 33 |
ソースコード
#include <iostream>#include <vector>using namespace std;vector<int> x;vector<int> y;long mod(long l) {return l % 1000000007;}long b(int i) {if (i == 0) {return 1;}return mod(mod(y[i - 1]) * b(i - 1) + 1);}long a(int i) {if (i == 0) {return 1;}long bb = mod(b(i - 1));return mod(mod(x[i - 1]) * mod(bb * bb) + a(i - 1));}int main() {int n, q;cin >> n >> q;x.resize(n);fill(x.begin(), x.end(), 0);y.resize(n);fill(y.begin(), y.end(), 0);for (int i = 0; i < q; i++) {char c;int j;cin >> c >> j;if (c == 'x') {cin >> x[j];} else if (c == 'y') {cin >> y[j];} else {cout << a(j) << endl;}}return 0;}