提出 #74670000
ソースコード 拡げる
#include<bits/stdc++.h>
//入力系
#define cinll(...) ll __VA_ARGS__; input(__VA_ARGS__);
#define cinint(...) int __VA_ARGS__; input(__VA_ARGS__);
#define cinstr(...) string __VA_ARGS__; input(__VA_ARGS__);
#define cinchar(...) char __VA_ARGS__; input(__VA_ARGS__);
#define cindouble(...) double __VA_ARGS__; input(__VA_ARGS__);
#define cinvll(a,n) vll a(n); rep(i,n) cin>>a[i];
#define cinvvll(a,n,m) vvll a(n,vll(m)); rep(i,n) rep(j,m) cin>>a[i][j];
#define cinvs(a,n) vs a(n); rep(i,n) cin>>a[i];
#define cinvpll(a,n) vpll a(n); rep(i,n) cin>>a[i].fst>>a[i].snd;
//繰り返し系
#define rep1(n) for(ll i=0;i<n;i++)
#define rep2(i,n) for(ll i=0;i<n;i++)
#define rep3(i,a,n) for(ll i=a;i<n;i++)
#define rep4(i,a,n,b) for(ll i=a;i<n;i+=b)
#define overload4(a,b,c,d,e,...) e
#define rep(...) overload4(__VA_ARGS__,rep4,rep3,rep2,rep1)(__VA_ARGS__)
#define mrep1(n) for(ll i=n;i>=0;i--)
#define mrep2(i,n) for(ll i=n;i>=0;i--)
#define mrep3(i,n,a) for(ll i=n;i>=a;i--)
#define mrep4(i,n,a,b) for(ll i=n;i>=a;i-=b)
#define mrep(...) overload4(__VA_ARGS__,mrep4,mrep3,mrep2,mrep1)(__VA_ARGS__)
//iterator系
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
//vector系
#define pb push_back
//書くのが長いやつ
#define fst first
#define snd second
#define cvvll1(name,a,b) vvll name(a, vll(b))
#define cvvll2(name,a,b,c) vvll name(a, vll(b,c))
#define cvvlloverload2(name,a,b,c,d,...) d
#define make_vvll(...) cvvlloverload2(__VA_ARGS__,cvvll2,cvvll1)(__VA_ARGS__)
using namespace std;
//型系
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vll>;
using vi = vector<int>;
using vvi = vector<vi>;
using vb = vector<bool>;
using vvb = vector<vb>;
using vd = vector<double>;
using vvd = vector<vd>;
using vc = vector<char>;
using vvc = vector<vc>;
using vs = vector<string>;
using pll = pair<long long,long long>;
using pi = pair<int,int>;
using pd = pair<double,double>;
using sll = set<long long>;
using vsll = vector<sll>;
using vpll = vector<pll>;
using vpi = vector<pi>;
using vpd = vector<pd>;
using vvpll = vector<vpll>;
#define vmll vector<mll>
#define vvmll vector<vector<mll>>
// const ll mod = 998244353LL;
// const ll mod = 1000000007LL;
const ll mod = 10007;
const ll inf = 1300100100100100100LL;
const double PI=3.1415926535897932384626433832795028841971;
//表示
#define overload1(a,b,NAME,...) NAME
#define coutYesReturn() do {coutYes(); return 0; } while(0)
#define coutYesReturnIf(a) do { if(a){ coutYesReturn(); }} while(0)
#define coutNoReturn() do {coutNo(); return 0;} while(0)
#define coutNoReturnIf(a) do {if(a){ coutNoReturn(); }} while(0)
#define coutReturnIf(a,s) do{if(a){cout<<s<<endl; return 0;}}while(0)
template<typename... T>
void coutll(T... a){ ((cout << a <<" "),...) << endl; }
void coutvll(vll &a){ rep(i,a.size()) cout<<a[i]<<" "; cout<<endl; }
void coutvll(string name, vll &a){ cout<<name<<":"; coutvll(a); }
void coutvlln(vll &a){ rep(i,a.size()) cout<<a[i]<<endl; }
void coutYes(){ cout<<"Yes"<<endl; }
void coutNo(){ cout<<"No"<<endl; }
void coutYesNo(bool a){ cout<<(a?"Yes":"No")<<endl; }
void coutIf(bool a, string s, string t){ cout<<(a?s:t)<<endl; }
//入力
template<class... T>
void input(T&... a){
(cin >> ... >> a);
}
//複数ソート
template<class... T>
void sorts(vector<T>&... a){
(sort(all(a)),...);
}
//便利関数
template<typename T> bool chmax(T &a, T b){ if(a < b) {a = b; return true;} return false; }
template<typename T> bool chmin(T &a, T b){ if(a > b) {a = b; return true;} return false; }
//配列表示用
template <typename T>
std::ostream& operator<<(std::ostream& os, const std::vector<T>& vec) {
rep(i,vec.size()) os << vec[i] << (i==(ll)vec.size()-1?"":" ");
return os;
}
// pair 表示用
template <typename T, typename S>
std::ostream& operator<<(std::ostream& os, const std::pair<T,S>& p) {
os << p.fst << " " << p.snd;
return os;
}
// 数べての部分文字列の個数から、Tを部分列として含むものを引く
// 全ての部分文字列の個数は n*(n+1)/2
// dp[i][j] := s[0] ~ s[i] の中で、s[i] を必ず最後に使い、t[0:j]を部分列として含む個数
// dp2[i][j] := dp[i][j] + dp[i-1][j] + ... + dp[0][j];
int main(){
cinstr(s, t);
ll n = s.size();
ll m = t.size();
vvll dp(n, vll(m, 0));
vvll dp2(n, vll(m, 0));
if(s[0] == t[0]){
dp[0][0] = 1;
}
rep(i,1, n){
rep(j, m){
dp[i][j] = dp[i-1][j];
if(j == 0){
if(s[i] == t[j]) dp[i][j] = i+1;
}
else{
if(s[i] == t[j]){
dp[i][j] += dp[i-1][j-1] - dp[i-1][j];
}
}
}
}
ll total = 0;
rep(i,n) total += dp[i][m-1];
cout << n*(n+1)/2 - total << endl;
return 0;
}
提出情報
コンパイルエラー
./Main.cpp: In function 'void coutvll(vll&)':
./Main.cpp:14:31: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
14 | #define rep2(i,n) for(ll i=0;i<n;i++)
| ^
./Main.cpp:17:34: note: in expansion of macro 'rep2'
17 | #define overload4(a,b,c,d,e,...) e
| ^
./Main.cpp:18:18: note: in expansion of macro 'overload4'
18 | #define rep(...) overload4(__VA_ARGS__,rep4,rep3,rep2,rep1)(__VA_ARGS__)
| ^~~~~~~~~
./Main.cpp:77:23: note: in expansion of macro 'rep'
77 | void coutvll(vll &a){ rep(i,a.size()) cout<<a[i]<<" "; cout<<endl; }
| ^~~
./Main.cpp: In function 'void coutvlln(vll&)':
./Main.cpp:14:31: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
14 | #define rep2(i,n) for(ll i=0;i<n;i++)
| ^
./Main.cpp:17:34: note: in expansion of macro 'rep2'
17 | #define overload4(a,b,c,d,e,...) e
| ^
./Main.cpp:18:18: note: in expansion of macro 'overload4'
18 | #define rep(...) overload4(__VA_ARGS__,rep4,rep3,rep2,rep1)(__VA_ARGS__)
| ^~~~~~~~~
./Main.cpp:79:24: note: in expansion of macro 'rep'
79 | void coutvlln(vll &a){ rep(i,a.size()) cout<<a[i]<<endl; }
| ^~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
400 / 400 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3640 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3592 KiB |
| 00_sample_02.txt |
AC |
1 ms |
3576 KiB |
| 01_random_03.txt |
AC |
38 ms |
63508 KiB |
| 01_random_04.txt |
AC |
52 ms |
95172 KiB |
| 01_random_05.txt |
AC |
18 ms |
33444 KiB |
| 01_random_06.txt |
AC |
24 ms |
50340 KiB |
| 01_random_07.txt |
AC |
24 ms |
40688 KiB |
| 01_random_08.txt |
AC |
45 ms |
75336 KiB |
| 01_random_09.txt |
AC |
67 ms |
119124 KiB |
| 01_random_10.txt |
AC |
52 ms |
87964 KiB |
| 01_random_11.txt |
AC |
79 ms |
150288 KiB |
| 01_random_12.txt |
AC |
23 ms |
31804 KiB |
| 01_random_13.txt |
AC |
25 ms |
37908 KiB |
| 01_random_14.txt |
AC |
57 ms |
100324 KiB |
| 01_random_15.txt |
AC |
68 ms |
119112 KiB |
| 01_random_16.txt |
AC |
78 ms |
144068 KiB |
| 01_random_17.txt |
AC |
57 ms |
94268 KiB |
| 01_random_18.txt |
AC |
25 ms |
37832 KiB |
| 01_random_19.txt |
AC |
84 ms |
156560 KiB |
| 01_random_20.txt |
AC |
56 ms |
94152 KiB |
| 01_random_21.txt |
AC |
29 ms |
44196 KiB |
| 01_random_22.txt |
AC |
76 ms |
144164 KiB |
| 01_random_23.txt |
AC |
81 ms |
150460 KiB |
| 01_random_24.txt |
AC |
66 ms |
119056 KiB |
| 01_random_25.txt |
AC |
92 ms |
175476 KiB |
| 01_random_26.txt |
AC |
46 ms |
75452 KiB |
| 01_random_27.txt |
AC |
56 ms |
94268 KiB |
| 01_random_28.txt |
AC |
75 ms |
131556 KiB |
| 01_random_29.txt |
AC |
53 ms |
87880 KiB |
| 01_random_30.txt |
AC |
46 ms |
75412 KiB |
| 01_random_31.txt |
AC |
43 ms |
69136 KiB |
| 01_random_32.txt |
AC |
20 ms |
25416 KiB |
| 01_random_33.txt |
AC |
74 ms |
131600 KiB |
| 01_random_34.txt |
AC |
62 ms |
106660 KiB |
| 01_random_35.txt |
AC |
85 ms |
156636 KiB |
| 01_random_36.txt |
AC |
73 ms |
131556 KiB |
| 01_random_37.txt |
AC |
50 ms |
81604 KiB |
| 01_random_38.txt |
AC |
49 ms |
81700 KiB |
| 01_random_39.txt |
AC |
53 ms |
87880 KiB |
| 01_random_40.txt |
AC |
44 ms |
73508 KiB |
| 01_random_41.txt |
AC |
67 ms |
124988 KiB |
| 01_random_42.txt |
AC |
63 ms |
118948 KiB |
| 01_random_43.txt |
AC |
14 ms |
25636 KiB |
| 01_random_44.txt |
AC |
49 ms |
82928 KiB |
| 01_random_45.txt |
AC |
14 ms |
27464 KiB |
| 01_random_46.txt |
AC |
67 ms |
124260 KiB |
| 01_random_47.txt |
AC |
42 ms |
78524 KiB |
| 01_random_48.txt |
AC |
7 ms |
10228 KiB |
| 01_random_49.txt |
AC |
51 ms |
95856 KiB |
| 01_random_50.txt |
AC |
32 ms |
52516 KiB |
| 01_random_51.txt |
AC |
90 ms |
175432 KiB |
| 01_random_52.txt |
AC |
20 ms |
25532 KiB |
| 01_random_53.txt |
AC |
1 ms |
3440 KiB |
| 01_random_54.txt |
AC |
1 ms |
3564 KiB |
| 01_random_55.txt |
AC |
1 ms |
3572 KiB |