제출 #937516

#제출 시각아이디문제언어결과실행 시간메모리
937516Wansur축구 경기장 (IOI23_soccer)C++17
1.50 / 100
595 ms415448 KiB
#include <bits/stdc++.h> #define f first #define s second #define ent '\n' #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") typedef long long ll; using namespace std; struct seg{ int m1,m2,sum,cnt; }; const string out[2]={"NO\n","YES\n"}; const ll dx[]={0,1,0,-1,-1,1,1,-1}; const ll dy[]={1,0,-1,0,-1,1,-1,1}; const int mod=998244353; const int md=1e9+7; const int mx=2e3+12; const bool T=0; bool used[2001][2001]; int n; void dfs(int x,int y){ used[x][y]=1; for(int i=0;i<4;i++){ int x1=dx[i]+x,y1=dy[i]+y; if(min(x1,y1)>=0 && max(x1,y1)<n && !used[x1][y1]){ dfs(x1,y1); } } } int biggest_stadium(int N, vector<vector<int>> a){ int sum=0; n=N; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ sum+=!a[i][j]; if(a[i][j]){ used[i][j]=1; } } } bool ok=0; int pos=0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(!used[i][j]){ pos=i; if(ok)return 0; ok=1; dfs(i,j); } } } int l=-1,r=-1; vector<pair<int,int>> v; for(int i=pos;i<n;i++) { int tl = -1, tr = -1, sum = 0; for (int j = 0; j < n; j++) { if (!a[i][j]) { ok = 1; if (tl == -1) { tl = j; } tr = j; sum++; } } if (tl==-1){ break; } if(sum!=tr-tl+1){ return 0; } v.push_back({tl,tr}); } for(int i=0;i<v.size();i++){ auto [l,r]=v[i]; int mxl=l, mnr=r; for(int j=i+1;j<v.size();j++){ auto [tl, tr]=v[j]; mxl=max(mxl,tl); mnr=min(mnr,tr); if(tr > r && mxl > l)return 0; if(tl < l && mnr < r)return 0; if(tr < r && mxl > tl)return 0; if(tl > l && mnr < tr)return 0; } } return sum; }

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

soccer.cpp: In function 'int biggest_stadium(int, std::vector<std::vector<int> >)':
soccer.cpp:82:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |     for(int i=0;i<v.size();i++){
      |                 ~^~~~~~~~~
soccer.cpp:85:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |         for(int j=i+1;j<v.size();j++){
      |                       ~^~~~~~~~~
soccer.cpp:60:9: warning: unused variable 'l' [-Wunused-variable]
   60 |     int l=-1,r=-1;
      |         ^
soccer.cpp:60:14: warning: unused variable 'r' [-Wunused-variable]
   60 |     int l=-1,r=-1;
      |              ^
#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...