제출 #164225

#제출 시각아이디문제언어결과실행 시간메모리
164225aggu_01000101Ispit (COCI19_ispit)C++14
81 / 90
2074 ms55672 KiB
#include <iostream> #include <cmath> #include <vector> #include <algorithm> #include <queue> #include <fstream> #include <set> #include <iomanip> #include <unordered_map> #define INF 1e16 #define int long long #define N (int)1e5 + 5 using namespace std; int32_t main(){ ios_base::sync_with_stdio(false); cout.tie(0); cin.tie(0); int n, m; cin>>n>>m; char mat[n][n]; int maxpref[n][n]; int maxsuff[n][n]; for(int i = 0;i<n;i++){ string s; cin>>s; for(int j =0 ;j<s.length();j++){ mat[i][j] = s[j]; } } int freq[n][n][26]; for(int i = 0;i<n;i++){ for(int j =0 ;j<n;j++){ for(int k = 0;k<26;k++){ freq[i][j][k] = 0; } } for(int j = i+1;j<n;j++){ maxpref[i][j] = maxsuff[i][j] = 0; int k = -1; while(++k<n && mat[i][k]==mat[j][k]) ++maxpref[i][j]; k = n; while(--k>=0 && mat[i][k]==mat[j][k]) ++maxsuff[i][j]; } } for(int i = 0;i<n;i++){ freq[i][0][mat[i][0] - 'a']=1; for(int j = 1;j<n;j++){ for(int k = 0;k<26;k++){ freq[i][j][k]=freq[i][j-1][k]; } freq[i][j][mat[i][j]-'a']++; } } bool possible = false; for(int i = 0;i<=(n-m);i++){ int last = i+m-1; for(int j = 0;j<(n-1);j++){ for(int l = j+1;l<n;l++) { bool firstsame = true; bool lastsame = true; bool charcountsame = true; if(maxpref[j][l]<i) firstsame = false; if(maxsuff[j][l]<(n-last-1)) lastsame = false; for (int k = 0; k < 26; k++) { int count1 = freq[j][last][k] - (i == 0 ? 0 : freq[j][i - 1][k]); int count2 = freq[l][last][k] - (i == 0 ? 0 : freq[l][i - 1][k]); if (count1 != count2) charcountsame = false; } if (firstsame && lastsame && charcountsame) possible = true; } } } for(int i = 0;i<(n-1);i++){ for(int l = i+1;l<n;l++) { if (maxpref[i][l]==n) possible = true; } } if(possible) cout<<"DA"<<endl; else cout<<"NE"<<endl; }

컴파일 시 표준 에러 (stderr) 메시지

ispit.cpp: In function 'int32_t main()':
ispit.cpp:25:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j =0 ;j<s.length();j++){
                       ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...