Submission #598099

#TimeUsernameProblemLanguageResultExecution timeMemory
598099yutabiRectangles (IOI19_rect)C++14
13 / 100
397 ms408904 KiB
#include "rect.h" #include <bits/stdc++.h> using namespace std; int N; int M; int L; int R; int U; int D; int k; vector <vector <bool> > V; void DFS(int y, int x) { k++; V[y][x]=1; L=min(x,L); R=max(R,x); U=min(U,y); D=max(D,y); if(y>0 && V[y-1][x]==0) { DFS(y-1,x); } if(x>0 && V[y][x-1]==0) { DFS(y,x-1); } if(y<N-1 && V[y+1][x]==0) { DFS(y+1,x); } if(x<M-1 && V[y][x+1]==0) { DFS(y,x+1); } } long long count_rectangles(std::vector<std::vector<int> > a) { vector <vector <bool> > v(a.size(),vector <bool> (a[0].size(),0)); int ans; for(int i=0;i<a.size();i++) { for(int j=0;j<a[i].size();j++) { if(a[i][j]>0) { v[i][j]=1; } } } N=a.size(); M=a[0].size(); V=v; for(int i=0;i<a.size();i++) { for(int j=0;j<a[i].size();j++) { if(V[i][j]==0) { L=R=j; U=D=i; k=0; DFS(i,j); //printf("aaa"); if(L>0 && U>0 && R<M-1 && D<N-1 && (D-U+1)*(R-L+1)==k) { ans++; } } } } return ans; }

Compilation message (stderr)

rect.cpp: In function 'long long int count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:62:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for(int i=0;i<a.size();i++)
      |              ~^~~~~~~~~
rect.cpp:64:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |   for(int j=0;j<a[i].size();j++)
      |               ~^~~~~~~~~~~~
rect.cpp:78:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |  for(int i=0;i<a.size();i++)
      |              ~^~~~~~~~~
rect.cpp:80:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |   for(int j=0;j<a[i].size();j++)
      |               ~^~~~~~~~~~~~
rect.cpp:105:9: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
  105 |  return ans;
      |         ^~~
#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...