提出 #70606968
ソースコード 拡げる
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#ifdef jlocal
#include<jdebug/debug.hpp>
#else
#define debug(...) 0;
#endif
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int,int> pii;
typedef vector<pii> vii;
template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#if defined(__LP64__) || defined(_WIN64)
typedef __int128 lll;
#else
typedef long long lll;
#endif
#define pcount(x) __builtin_popcount(x)
#define pcountll(x) __builtin_popcountll(x)
#define all(x) x.begin(),x.end()
const ld pi = 3.14159265358979323846L;
const ld sqrt2 = 1.41421356237309504880L;
template<class T>
istream& operator>>(istream& in, vector<T> &a){
for (int i = 0; i < a.size(); i ++)
in >> a[i];
return in;
}
template<class T>
ostream& operator<<(ostream& out, vector<T> &a){
for (int i = 0; i < a.size(); i ++){
if (i > 0) out << ' ';
out << a[i];
}
return out;
}
#if defined(__LP64__) || defined(_WIN64)
istream& operator>>(istream& in, __int128 &x){
string S;
in >> S;
for (char &y : S){
x *= 10;
x += (y - '0');
}
return in;
}
ostream& operator<<(ostream& out, __int128 &x){
string s;
while(x > 0){
s.push_back((x % 10) + '0');
x /= 10;
}
if (s.size() == 0)
s.push_back('0');
reverse(all(s));
return out << s;
}
#endif
mt19937_64 MT64;
void pre_init() {
MT64 = mt19937_64(chrono::system_clock::now().
time_since_epoch().count());
}
template<class T>
vector<int> prefix(T &S) {
vector<int> P(S.size());
P[0] = 0;
for(int i = 1; i < S.size(); ++ i) {
P[i] = P[i - 1];
while(P[i] > 0 && S[P[i]] != S[i])
P[i] = P[P[i] - 1];
if(S[P[i]] == S[i])
++ P[i];
}
return P;
}
void solve(int caso){
string a, b;
cin >> a >> b;
b = b + "2" + a + a;
vector<int> p = prefix(b);
for (int i = (int)a.size() + a.size(); i < b.size(); i ++){
if (p[i] == a.size()){
cout << i - (int)a.size() - (int)a.size() << '\n';
return;
}
}
cout << "-1\n";
}
int main(){
#ifndef jlocal
ios::sync_with_stdio(0); cin.tie(0);
#endif
pre_init();
int t;
cin >> t;
for (int i = 1; i <= t; i ++){
solve(i);
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Shift String |
| ユーザ | JOliva |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 450 |
| コード長 | 2424 Byte |
| 結果 | AC |
| 実行時間 | 28 ms |
| メモリ | 19260 KiB |
コンパイルエラー
./Main.cpp: In function 'void solve(int)':
./Main.cpp:101:50: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
101 | for (int i = (int)a.size() + a.size(); i < b.size(); i ++){
| ~~^~~~~~~~~~
./Main.cpp:102:26: warning: comparison of integer expressions of different signedness: '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
102 | if (p[i] == a.size()){
./Main.cpp:96:16: warning: unused parameter 'caso' [-Wunused-parameter]
96 | void solve(int caso){
| ~~~~^~~~
./Main.cpp: In instantiation of 'std::vector<int> prefix(T&) [with T = std::__cxx11::basic_string<char>]':
./Main.cpp:100:24: required from here
100 | vector<int> p = prefix(b);
| ~~~~~~^~~
./Main.cpp:86:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
86 | for(int i = 1; i < S.size(); ++ i) {
| ~~^~~~~~~~~~
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 450 / 450 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt |
| All | killer_01.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| killer_01.txt | AC | 12 ms | 3540 KiB |
| sample_01.txt | AC | 1 ms | 3536 KiB |
| test_01.txt | AC | 1 ms | 3540 KiB |
| test_02.txt | AC | 1 ms | 3532 KiB |
| test_03.txt | AC | 1 ms | 3548 KiB |
| test_04.txt | AC | 1 ms | 3668 KiB |
| test_05.txt | AC | 1 ms | 3524 KiB |
| test_06.txt | AC | 2 ms | 3548 KiB |
| test_07.txt | AC | 2 ms | 3668 KiB |
| test_08.txt | AC | 16 ms | 3616 KiB |
| test_09.txt | AC | 15 ms | 3524 KiB |
| test_10.txt | AC | 12 ms | 3660 KiB |
| test_11.txt | AC | 12 ms | 3660 KiB |
| test_12.txt | AC | 16 ms | 3744 KiB |
| test_13.txt | AC | 17 ms | 3788 KiB |
| test_14.txt | AC | 16 ms | 5808 KiB |
| test_15.txt | AC | 17 ms | 5840 KiB |
| test_16.txt | AC | 23 ms | 19140 KiB |
| test_17.txt | AC | 21 ms | 19216 KiB |
| test_18.txt | AC | 17 ms | 19192 KiB |
| test_19.txt | AC | 17 ms | 19216 KiB |
| test_20.txt | AC | 15 ms | 19192 KiB |
| test_21.txt | AC | 15 ms | 19228 KiB |
| test_22.txt | AC | 14 ms | 19064 KiB |
| test_23.txt | AC | 14 ms | 19068 KiB |
| test_24.txt | AC | 13 ms | 19224 KiB |
| test_25.txt | AC | 13 ms | 19132 KiB |
| test_26.txt | AC | 13 ms | 19216 KiB |
| test_27.txt | AC | 17 ms | 19140 KiB |
| test_28.txt | AC | 17 ms | 19216 KiB |
| test_29.txt | AC | 20 ms | 19188 KiB |
| test_30.txt | AC | 20 ms | 19216 KiB |
| test_31.txt | AC | 17 ms | 19132 KiB |
| test_32.txt | AC | 19 ms | 19224 KiB |
| test_33.txt | AC | 19 ms | 19216 KiB |
| test_34.txt | AC | 20 ms | 19180 KiB |
| test_35.txt | AC | 18 ms | 19192 KiB |
| test_36.txt | AC | 17 ms | 19176 KiB |
| test_37.txt | AC | 19 ms | 19216 KiB |
| test_38.txt | AC | 18 ms | 19144 KiB |
| test_39.txt | AC | 16 ms | 19136 KiB |
| test_40.txt | AC | 19 ms | 19220 KiB |
| test_41.txt | AC | 18 ms | 19224 KiB |
| test_42.txt | AC | 19 ms | 19224 KiB |
| test_43.txt | AC | 17 ms | 19172 KiB |
| test_44.txt | AC | 23 ms | 19216 KiB |
| test_45.txt | AC | 23 ms | 19232 KiB |
| test_46.txt | AC | 24 ms | 19220 KiB |
| test_47.txt | AC | 5 ms | 3532 KiB |
| test_48.txt | AC | 5 ms | 3480 KiB |
| test_49.txt | AC | 28 ms | 19260 KiB |
| test_50.txt | AC | 27 ms | 19120 KiB |