Submission #38441

#TimeUsernameProblemLanguageResultExecution timeMemory
38441kajebiii구간 성분 (KOI15_interval)C++14
100 / 100
256 ms2156 KiB
#include <bits/stdc++.h> using namespace std; #define SZ(v) ((int)(v).size()) #define ALL(v) (v).begin(),(v).end() #define one first #define two second typedef long long ll; typedef pair<int, int> pi; const int INF = 0x3f2f1f0f; const ll LINF = 1ll * INF * INF; const int MAX_N = 2e3 + 10; typedef unsigned int ui; int N, M; char Ns[MAX_N], Ms[MAX_N]; ui H[26]; int main() { H[0] = 1e9 + 7; for(int i=1; i<26; i++) H[i] = H[i-1] * (ui)97 + (ui)(1e8 + 7); scanf("%s", Ns); N = strlen(Ns); scanf("%s", Ms); M = strlen(Ms); int ans = 0; for(int l=min(N, M); l>=1; l--) { ui n = 0, m = 0; for(int i=0; i<l-1; i++) n += H[Ns[i]-'a'], m += H[Ms[i]-'a']; set<ui> s; for(int i=l-1; i<N; i++) { n += H[Ns[i]-'a']; if(i-l>=0) n -= H[Ns[i-l]-'a']; s.insert(n); } for(int j=l-1; j<M; j++) { m += H[Ms[j]-'a']; if(j-l>=0) m -= H[Ms[j-l]-'a']; if(s.find(m) != s.end()) { ans = l; goto finish; } } } finish: printf("%d\n", ans); return 0; }

Compilation message (stderr)

interval.cpp: In function 'int main()':
interval.cpp:24:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", Ns); N = strlen(Ns);
                 ^
interval.cpp:25:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", Ms); M = strlen(Ms);
                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...