Submission #00149
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #include <bits/stdc++.h> using namespace std; int n, m; vector<string> vec; vector<string> rvec; int search(string s, vector<string> &v){ s.pop_back(); int l = lower_bound(v.begin(), v.end(), s) - v.begin(); s.push_back( 'z' +2); int r = lower_bound(v.begin(), v.end(), s) - v.begin(); return r-l; } int main(){ cin >> n >> m; for ( int i = 0;i < n;i++){ string s; string rs; cin >> s; for ( int i = s.size()-1;i >= 0;i--){ rs.push_back(s[i]); } vec.push_back(s); rvec.push_back(rs); } sort(vec.begin(), vec.end()); sort(rvec.begin(), rvec.end()); for ( int i = 0;i < m;i++){ string s; cin >> s; int r = 0; if (s[0] == '*' ){ string t; for ( int i = s.size()-1;i >= 0;i--){ t.push_back(s[i]); } s = t; r = 1; } int ans = 0; if (s[s.size()-1] == '*' ){ int idx = -1; for ( int i = 0;i < s.size();i++){ if (s[i] == '?' ){ idx = i; break ; } } if (idx == -1){ if (r == 0){ ans = search(s, vec); } else { ans = search(s, rvec); } } else { for ( int c = 'a' ;c <= 'z' ;c++){ s[idx] = c; if (r == 0){ ans += search(s, vec); } else { ans += search(s, rvec); } } } } else { int idx = -1; for ( int i = 0;i < s.size();i++){ if (s[i] == '?' ){ idx = i; break ; } } if (idx == -1){ int num = lower_bound(vec.begin(), vec.end(), s) - vec.begin(); if (num != vec.size() && vec[num] == s){ ans++; } } else { for ( int c = 'a' ;c <= 'z' ;c++){ s[idx] = c; int num = lower_bound(vec.begin(), vec.end(), s) - vec.begin(); if (num != vec.size() && vec[num] == s){ ans++; } } } } cout << ans << endl; } return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0008 - 石版 |
ユーザー名 | ARUMAKAN |
投稿日時 | 2019-09-10 17:24:13 |
言語 | C++14 |
状態 | Accepted |
得点 | 15 |
ソースコード長 | 2600 Byte |
最大実行時間 | 341 ms |
最大メモリ使用量 | 10292 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 15 / 15 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
00_sample_00.in | AC | 23 ms | 348 KB |
1
|
01_rand_00.in | AC | 28 ms | 572 KB |
1
|
01_rand_01.in | AC | 20 ms | 408 KB |
1
|
01_rand_02.in | AC | 23 ms | 500 KB |
1
|
01_rand_03.in | AC | 32 ms | 476 KB |
1
|
01_rand_04.in | AC | 22 ms | 440 KB |
1
|
01_rand_05.in | AC | 21 ms | 524 KB |
1
|
01_rand_06.in | AC | 22 ms | 480 KB |
1
|
01_rand_07.in | AC | 17 ms | 436 KB |
1
|
01_small_00.in | AC | 20 ms | 392 KB |
1
|
02_large_00.in | AC | 62 ms | 1508 KB |
1
|
02_large_01.in | AC | 64 ms | 1640 KB |
1
|
02_large_02.in | AC | 162 ms | 9172 KB |
1
|
02_large_03.in | AC | 191 ms | 10292 KB |
1
|
03_critical_00.in | AC | 333 ms | 4056 KB |
1
|
03_critical_01.in | AC | 341 ms | 4072 KB |
1
|
77_test_00.in | AC | 20 ms | 960 KB |
1
|
77_test_01.in | AC | 25 ms | 1048 KB |
1
|
77_test_02.in | AC | 20 ms | 1128 KB |
1
|
77_test_03.in | AC | 34 ms | 1084 KB |
1
|
77_test_04.in | AC | 20 ms | 1036 KB |
1
|
77_test_05.in | AC | 24 ms | 1120 KB |
1
|
77_test_06.in | AC | 23 ms | 1076 KB |
1
|
77_test_07.in | AC | 25 ms | 908 KB |
1
|
77_test_08.in | AC | 17 ms | 1120 KB |
1
|
77_test_09.in | AC | 19 ms | 1076 KB |
1
|
77_test_10.in | AC | 22 ms | 1156 KB |
1
|
77_test_11.in | AC | 23 ms | 1244 KB |
1
|
77_test_12.in | AC | 20 ms | 1204 KB |
1
|
77_test_13.in | AC | 22 ms | 1028 KB |
1
|
77_test_14.in | AC | 24 ms | 1116 KB |
1
|
77_test_15.in | AC | 24 ms | 1076 KB |
1
|
1000_test_00.in | AC | 30 ms | 1032 KB |
1
|
1000_test_01.in | AC | 27 ms | 912 KB |
1
|
1000_test_02.in | AC | 27 ms | 924 KB |
1
|
1000_test_03.in | AC | 27 ms | 1064 KB |
1
|
1000_test_04.in | AC | 35 ms | 944 KB |
1
|
1000_test_05.in | AC | 24 ms | 956 KB |
1
|
1000_test_06.in | AC | 31 ms | 964 KB |
1
|
1000_test_07.in | AC | 31 ms | 976 KB |
1
|
1000_test_08.in | AC | 24 ms | 984 KB |
1
|
1000_test_09.in | AC | 29 ms | 992 KB |
1
|
1000_test_10.in | AC | 28 ms | 1096 KB |
1
|