# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
164237 | 2019-11-18T18:03:59 Z | aggu_01000101 | Ispit (COCI19_ispit) | C++14 | 805 ms | 6396 KB |
#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; int 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]-'a'; } } for(int i = 0;i<n;i++){ 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]; } } int cnt[26], cnt1[26]; bool possible = false; for(int i = 0;i<n;i++){ for(int k = i+1;k<n;k++){ for(int i = 0;i<26;i++) cnt[i] = cnt1[i] = 0; int samecount = 26; for(int j = 0;j<m;j++){ if(mat[i][j] != mat[k][j] && cnt[mat[i][j]] == cnt1[mat[i][j]]) samecount--; cnt[mat[i][j]]++; if(mat[i][j] != mat[k][j] && cnt[mat[k][j]] == cnt1[mat[k][j]]) samecount--; cnt1[mat[k][j]]++; if(mat[i][j] != mat[k][j] && cnt[mat[i][j]] == cnt1[mat[i][j]]) samecount++; if(mat[i][j] != mat[k][j] && cnt[mat[k][j]] == cnt1[mat[k][j]]) samecount++; } if(samecount==26 && maxsuff[i][k]>=(n-m)) possible = true; for(int j = m;j<n;j++){ if(mat[i][j-m] != mat[k][j-m] && cnt[mat[i][j-m]] == cnt1[mat[i][j-m]]) samecount--; cnt[mat[i][j-m]]--; if(mat[i][j-m] != mat[k][j-m] && cnt1[mat[k][j-m]] == cnt[mat[k][j-m]]) samecount--; cnt1[mat[k][j-m]]--; if(mat[i][j] != mat[k][j] && cnt[mat[i][j]] == cnt1[mat[i][j]]) samecount--; cnt[mat[i][j]]++; if(mat[i][j] != mat[k][j] && cnt[mat[k][j]] == cnt1[mat[k][j]]) samecount--; cnt1[mat[k][j]]++; if(mat[i][j] != mat[k][j] && cnt[mat[i][j]] == cnt1[mat[i][j]]) samecount++; if(mat[i][j] != mat[k][j] && cnt[mat[k][j]] == cnt1[mat[k][j]]) samecount++; if(samecount==26 && maxsuff[i][k]>=(n-j-1) && maxpref[i][k]>=(j-m+1)) possible = true; //cout<<i<<" "<<k<<" "<<samecount<<endl; } } } 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; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 504 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 248 KB | Output is correct |
3 | Correct | 2 ms | 380 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 1448 KB | Output is correct |
2 | Correct | 32 ms | 1320 KB | Output is correct |
3 | Correct | 49 ms | 1348 KB | Output is correct |
4 | Correct | 52 ms | 1272 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 29 ms | 1316 KB | Output is correct |
2 | Correct | 33 ms | 1320 KB | Output is correct |
3 | Correct | 45 ms | 1272 KB | Output is correct |
4 | Correct | 58 ms | 1400 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 1272 KB | Output is correct |
2 | Correct | 29 ms | 1272 KB | Output is correct |
3 | Correct | 32 ms | 1272 KB | Output is correct |
4 | Correct | 41 ms | 1272 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 30 ms | 1272 KB | Output is correct |
2 | Correct | 31 ms | 1272 KB | Output is correct |
3 | Correct | 48 ms | 1272 KB | Output is correct |
4 | Correct | 41 ms | 1272 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 407 ms | 6244 KB | Output is correct |
2 | Correct | 406 ms | 6248 KB | Output is correct |
3 | Correct | 344 ms | 6244 KB | Output is correct |
4 | Correct | 449 ms | 6252 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 405 ms | 6268 KB | Output is correct |
2 | Correct | 399 ms | 6264 KB | Output is correct |
3 | Correct | 805 ms | 6264 KB | Output is correct |
4 | Correct | 769 ms | 6396 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 566 ms | 6264 KB | Output is correct |
2 | Correct | 411 ms | 6264 KB | Output is correct |
3 | Correct | 519 ms | 6264 KB | Output is correct |
4 | Correct | 595 ms | 6264 KB | Output is correct |