# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
759009 | 2023-06-15T16:40:46 Z | kirakosyan | Dijamant (COCI22_dijamant) | C++17 | 1 ms | 468 KB |
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <cmath> #include <map> #include <string> #include <ios> #include <iomanip> #include <deque> #include <queue> #include <list> #include <stack> #define FASTIO ios_base::sync_with_stdio(0); cin.tie(NULL); using ll = long long; using namespace std; void solve(){ int n,m; cin >> n >> m; vector<string>v(n); vector<vector<int>>a(n,vector<int>(m)); vector<vector<int>>b(n,vector<int>(m)); vector<vector<int>>c(n,vector<int>(m)); vector<vector<int>>d(n,vector<int>(m)); vector<vector<int>>pref(n,vector<int>(m)); for(int i=0;i<n;i++){ cin >> v[i]; } for(int i=0;i<n;i++){ if(v[i][0]=='#'){ pref[i][0]=1; } for(int j=1;j<m;j++){ if(v[i][j]=='#'){ pref[i][j]=pref[i][j-1]+1; } else pref[i][j]=pref[i][j-1]; } } // 7 10 // .....#... // ....#.#.. // ...#...#. // ..#.....# // ...#...#. // ....#.#.. // .....#... for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(j!=0&&i!=n-1&&j!=m-1){ if(v[i+1][j-1]=='#'&&v[i+1][j+1]=='#'&&v[i+1][j]=='.'&&v[i][j]=='#'){ a[i+1][j-1]=1; b[i+1][j+1]=1; } } if(j!=0&&i!=0&&j!=m-1){ if(v[i-1][j-1]=='#'&&v[i-1][j+1]=='#'&&v[i-1][j]=='.'&&v[i][j]=='#'){ c[i-1][j-1]=1; d[i-1][j+1]=1; } } } } for (int i=0;i<n;i++){ int arajin=-1,erkrord=-1,cnt=0; for(int j=0;j<m;j++){ if(v[i][j]=='#'&&cnt==0) { cnt++; arajin=j; } else if(v[i][j]=='#'&&cnt==1) { if(i>=1&&a[i-1][arajin+1]==1&&b[i-1][j-1]==1&&(pref[i-1][j-1]-pref[i-1][arajin])==0){ a[i][arajin]=1; b[i][j]=1; } arajin=j; } } } for (int i=n-1;i>=0;i--){ int arajin=-1,erkrord=-1,cnt=0; for(int j=0;j<m;j++){ if(v[i][j]=='#'&&cnt==0) { cnt++; arajin=j; } else if(v[i][j]=='#'&&cnt==1) { if(i<=n-2&&c[i+1][arajin+1]==1&&d[i+1][j-1]==1&&(pref[i+1][j-1]-pref[i+1][arajin])){ c[i][arajin]=1; d[i][j]=1; } arajin=j; } } int ans=0; for(int i=0;i<n;i++){ int cnt=0; int arajin=-1,erkrord=-1; for(int j=0;j<m;j++){ if(v[i][j]=='#'&&cnt==0) { cnt++; arajin=j; } else if(v[i][j]=='#'&&cnt==1) { if(a[i][arajin]==1&&c[i][arajin]==1&&b[i][j]==1&&d[i][j]==1){ ans++; } arajin=j; } } } cout<<ans<<endl; } } signed main() { FASTIO ll t=1; //cin >> t; while (t--) { solve(); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 468 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 468 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |