提出 #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
結果
AC × 1
AC × 52
セット名 テストケース
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