提出 #51080303


ソースコード 拡げる

#include<bits/stdc++.h>
#define int long long

template<typename T>
void read(T &x){
	 int f=1;
	 char c=getchar();
	 x=0;
	 while(c<'0'||c>'9'){
		 if(c=='-') f=-1;
		 c=getchar();
	 }
	 while(c>='0'&&c<='9') x=x*10+(int)(c-'0'),c=getchar();
	 x*=f;
}

template<typename T,typename I>
void chkmin(T &a,I b){
	 a=std::min(a,b);
}

template<typename T,typename I>
void chkmax(T &a,T b){
	a=std::max(a,b);
}

const int inf=1e18+10,MOD1=998244353,MOD2=1e9+7;

const int maxn=110;

std::vector<std::string>vec[maxn];

int n;
std::string t;

int dp[maxn][maxn];

signed main(){
	std::cin>>t>>n;
	for(int i=1;i<=n;i++){
		int a;
		std::cin>>a;
		for(int j=1;j<=a;j++) {
			std::string ss;
			std::cin>>ss;
			vec[i].push_back(ss); 
		}
	}
	for(int i=0;i<=n;i++)	
		for(int j=0;j<=t.size();j++) dp[i][j]=inf;
	dp[0][0]=0; 
	for(int i=1;i<=n;i++){
		dp[i][0]=0;
		for(std::string s:vec[i]){
			for(int k=0;k<t.size();k++){
				//dp[i][k]
				chkmin(dp[i][k+1],dp[i-1][k+1]);
				if(k+1<s.size()) continue;
				int sum=0;
				for(int l=k;l>=0;l--){
					int len=k-l+1;
					if(len>s.size()) break;
					if(t[l]!=s[s.size()-len]) break;
					sum++;
				}
				if(sum!=s.size()) continue;
//				puts("-----\n");
				chkmin(dp[i][k+1],dp[i-1][k+1-sum]+1);
			}
		}
	}
	int ans=inf;
	//dp[n][]
	if(dp[n][t.size()]>=inf) printf("-1");
	else printf("%lld\n",dp[n][t.size()]);
	return 0;
}
/*
-读入字符一定检查回车
- 能不能搜索?
-函数要有返回值!
-想好了再写!
*/

提出情報

提出日時
問題 D - String Bags
ユーザ BYR_KKK
言語 C++ 20 (gcc 12.2)
得点 425
コード長 1561 Byte
結果 AC
実行時間 2 ms
メモリ 3980 KiB

コンパイルエラー

Main.cpp: In function ‘int main()’:
Main.cpp:50:30: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   50 |                 for(int j=0;j<=t.size();j++) dp[i][j]=inf;
      |                             ~^~~~~~~~~~
Main.cpp:55:38: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   55 |                         for(int k=0;k<t.size();k++){
      |                                     ~^~~~~~~~~
Main.cpp:58:39: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   58 |                                 if(k+1<s.size()) continue;
      |                                    ~~~^~~~~~~~~
Main.cpp:62:47: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   62 |                                         if(len>s.size()) break;
      |                                            ~~~^~~~~~~~~
Main.cpp:66:39: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   66 |                                 if(sum!=s.size()) continue;
      |                                    ~~~^~~~~~~~~~
Main.cpp:72:13: warning: unused variable ‘ans’ [-Wunused-variable]
   72 |         int ans=inf;
      |             ^~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 58
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.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, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3700 KiB
sample_02.txt AC 1 ms 3716 KiB
sample_03.txt AC 1 ms 3652 KiB
test_01.txt AC 1 ms 3564 KiB
test_02.txt AC 1 ms 3596 KiB
test_03.txt AC 1 ms 3840 KiB
test_04.txt AC 1 ms 3896 KiB
test_05.txt AC 1 ms 3844 KiB
test_06.txt AC 2 ms 3752 KiB
test_07.txt AC 2 ms 3712 KiB
test_08.txt AC 1 ms 3912 KiB
test_09.txt AC 1 ms 3752 KiB
test_10.txt AC 1 ms 3752 KiB
test_11.txt AC 2 ms 3704 KiB
test_12.txt AC 1 ms 3716 KiB
test_13.txt AC 1 ms 3652 KiB
test_14.txt AC 1 ms 3744 KiB
test_15.txt AC 1 ms 3784 KiB
test_16.txt AC 1 ms 3724 KiB
test_17.txt AC 1 ms 3648 KiB
test_18.txt AC 2 ms 3772 KiB
test_19.txt AC 1 ms 3788 KiB
test_20.txt AC 2 ms 3800 KiB
test_21.txt AC 1 ms 3688 KiB
test_22.txt AC 1 ms 3828 KiB
test_23.txt AC 2 ms 3728 KiB
test_24.txt AC 1 ms 3624 KiB
test_25.txt AC 2 ms 3904 KiB
test_26.txt AC 1 ms 3616 KiB
test_27.txt AC 2 ms 3908 KiB
test_28.txt AC 1 ms 3760 KiB
test_29.txt AC 2 ms 3752 KiB
test_30.txt AC 1 ms 3616 KiB
test_31.txt AC 2 ms 3732 KiB
test_32.txt AC 1 ms 3864 KiB
test_33.txt AC 1 ms 3908 KiB
test_34.txt AC 1 ms 3728 KiB
test_35.txt AC 2 ms 3836 KiB
test_36.txt AC 1 ms 3760 KiB
test_37.txt AC 1 ms 3784 KiB
test_38.txt AC 1 ms 3692 KiB
test_39.txt AC 2 ms 3980 KiB
test_40.txt AC 1 ms 3884 KiB
test_41.txt AC 2 ms 3916 KiB
test_42.txt AC 1 ms 3832 KiB
test_43.txt AC 2 ms 3696 KiB
test_44.txt AC 1 ms 3608 KiB
test_45.txt AC 2 ms 3696 KiB
test_46.txt AC 2 ms 3728 KiB
test_47.txt AC 2 ms 3836 KiB
test_48.txt AC 1 ms 3744 KiB
test_49.txt AC 2 ms 3912 KiB
test_50.txt AC 1 ms 3824 KiB
test_51.txt AC 2 ms 3696 KiB
test_52.txt AC 1 ms 3828 KiB
test_53.txt AC 1 ms 3908 KiB
test_54.txt AC 1 ms 3796 KiB
test_55.txt AC 1 ms 3832 KiB