結果
| 問題 |
No.954 Result
|
| コンテスト | |
| ユーザー |
nanophoto12
|
| 提出日時 | 2019-12-31 14:20:48 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,558 bytes |
| コンパイル時間 | 1,511 ms |
| コンパイル使用メモリ | 125,280 KB |
| 最終ジャッジ日時 | 2025-01-08 15:17:00 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 WA * 1 |
| other | AC * 25 WA * 4 |
ソースコード
#include <cmath>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <functional>
#include <queue>
#include <iostream>
#include <string.h>
#include <iomanip>
#include <algorithm>
#include <functional>
#include <cstdint>
#include <climits>
#include <unordered_set>
#include <unordered_map>
#include <sstream>
#include <stack>
using namespace std;
typedef long long int ll;
typedef pair<char,char> pcc;
typedef pair<ll,ll> P;
typedef tuple<ll,ll,ll> t3;
#define rep(i,a) for(ll i = 0;i < a;i++)
const ll mod = 1e9+7;
unordered_map<ll, ll> memo;
ll fib(ll key){
if(memo.count(key)) return memo[key];
auto m = fib(key-1) + fib(key-2);
memo[key] = m;
return m;
}
int main(void) {
vector<ll> vs(5);
rep(i,5){
cin >> vs[4-i];
}
memo[0] = 1;
memo[1] = 1;
memo[2] = 2;
ll key = 0;
while(true)
{
auto f = fib(key);
if(f == vs[0]){
ll count = 1;
if(vs[0] == 1 && vs[1] == 2){
for(int i = 2;i < 5;i++){
if(fib(key+i-1) == vs[i]) count++;
else break;
}
cout << count << endl;
return 0;
}
for(int i = 1;i < 5;i++){
if(fib(key+i) == vs[i]) count++;
else break;
}
cout << count << endl;
return 0;
}
else if(f > vs[0]) {
cout << 0 << endl;
return 0;
}
key++;
}
return 0;
}
nanophoto12