結果
問題 | No.492 IOI数列 |
ユーザー | xuzijian629 |
提出日時 | 2018-09-11 10:16:16 |
言語 | C++11 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 53 ms / 1,000 ms |
コード長 | 2,107 bytes |
コンパイル時間 | 1,171 ms |
コンパイル使用メモリ | 103,452 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-23 03:10:50 |
合計ジャッジ時間 | 2,014 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,816 KB |
testcase_02 | AC | 1 ms
6,944 KB |
testcase_03 | AC | 3 ms
6,940 KB |
testcase_04 | AC | 2 ms
6,940 KB |
testcase_05 | AC | 53 ms
6,940 KB |
testcase_06 | AC | 10 ms
6,940 KB |
testcase_07 | AC | 34 ms
6,940 KB |
testcase_08 | AC | 3 ms
6,940 KB |
testcase_09 | AC | 21 ms
6,944 KB |
testcase_10 | AC | 2 ms
6,944 KB |
testcase_11 | AC | 2 ms
6,944 KB |
testcase_12 | AC | 1 ms
6,944 KB |
testcase_13 | AC | 2 ms
6,940 KB |
testcase_14 | AC | 2 ms
6,944 KB |
testcase_15 | AC | 2 ms
6,944 KB |
testcase_16 | AC | 2 ms
6,940 KB |
testcase_17 | AC | 2 ms
6,940 KB |
testcase_18 | AC | 2 ms
6,944 KB |
testcase_19 | AC | 1 ms
6,940 KB |
testcase_20 | AC | 2 ms
6,944 KB |
testcase_21 | AC | 8 ms
6,940 KB |
ソースコード
#include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <stack> #include <queue> #include <set> #include <map> #include <unordered_map> #include <chrono> #include <random> #include <functional> #include <utility> #include <cassert> #pragma GCC optimize("O3") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma comment(linker, "STACK:36777216") using namespace std; using i64 = int64_t; constexpr i64 MOD = 1e9 + 7; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); using vi = vector<i64>; using vvi = vector<vi>; using vvvi = vector<vvi>; using ii = pair<i64, i64>; i64 tmp[] = {1,568658242,832989125,964713680,432717573,865999464,735084983,588059454,834230221,314653273,421935805,244213913,499865885,806688401,709661070,3368271,207231765,170842191,827693172,146063335,960280099,966692748,461319921,315013999,315391517,588888893,51320231,320055902,684924180,384456174,797022895,14153804,367300832,48054659,484574239,560466957,4644675,389023,788082206,455179231,198885522,840681663,758718052,41061196,350742828,601928613,408922199,148427570,302573877,376573500,144300001,478837572,431568836,185203966,327504435,430091869,417874738,421521591,682840839,622404319,296328424,970884251,734888505,903100813,478433713,91690004,254048209,881130177,473847831,849538152,104286961,902479973,955740468,856586321,945512322,588744593,241410053,993457327,583703689,650561389,712458802,979471021,958467374,422206051,62266485,77592561,337918007,660154005,703985793,404410458,17797199,332634843,756007764,278415043,181039352,868784608,583986413,368933151,348032305,490943380,24430014}; i64 get(i64 n) { i64 rem = tmp[n / i64(1e7)]; for (int i = n / i64(1e7) * i64(1e7); i < n; i++) { rem *= 100; rem += 1; rem %= MOD; } return rem; } vector<string> ans2 = {"0", "1"}; int main() { i64 n; cin >> n; i64 m = n; n = (n - 1) % (MOD - 1); cout << get(n) << endl; for (int i = 0; i < 12; i++) { ans2.push_back(ans2.back() + "01"); } cout << ans2[m % 11] << endl; }