제출 #1118384

#제출 시각아이디문제언어결과실행 시간메모리
1118384Younis_DwaiBomb (IZhO17_bomb)C++14
6 / 100
102 ms35920 KiB
//#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> #define endl "\n" #define F first #define S second #define pb push_back //#define int long long #define in insert #define mid (l+r)/2 #define in insert using namespace std; const int N=2505; char b[N][N]; int n,m,pref[N][N]; //set<pair<int,int>> adj[N][N]; void init(){ for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ pref[i][j]=pref[i-1][j]+pref[i][j-1]-pref[i-1][j-1]+bool(b[i][j]=='1'); } } return ; } int query(int x , int y , int x1 , int y1){ return pref[x1][y1]-pref[x1][y-1]-pref[x-1][y1]+pref[x-1][y-1]; } int32_t main(){ ios::sync_with_stdio(false);cin.tie(nullptr); cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>b[i][j]; init(); if(n==1){ int mx=m; for(int i=1;i<=m;i++){ if(b[1][i]=='1'){ int cnt=1; while(i+1<=m && b[1][i+1]==b[1][i]){ ++i; ++cnt; } mx=min(mx,cnt); ++i; } } cout<<mx; } else if(m==1){ int mx=n; for(int i=1;i<=n;i++){ if(b[i][1]=='1'){ int cnt=1; while(i+1<=n && b[i+1][1]==b[i][1]){ ++i; ++cnt; } mx=min(mx,cnt); ++i; } } cout<<mx; } /*else{ int mx=0,all=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(b[i][j]=='1') ++all; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(b[i][j]=='0') continue ; for(int i1=1;i1<=i;i1++){ for(int j1=1;j1<=j;j1++){ for(int i2=i;i2<=n;i2++){ for(int j2=j;j2<=m;j2++){ if(b[i1][j1]=='1' && b[i2][j2]=='1' && query(i1,j1,i2,j2)==(i2-i1+1)*(j2-j1+1)){ adj[i2-i1+1][j2-j1+1].in({i,j}); } } } } } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if((int)adj[i][j].size()==all) mx=max(mx,i*j); } } cout<<mx; }*/ return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...