제출 #1233297

#제출 시각아이디문제언어결과실행 시간메모리
1233297MuhammadSaramSoccer Stadium (IOI23_soccer)C++20
2 / 100
4596 ms63256 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; int biggest_stadium(int n, vector<vector<int>> a) { int pre[n][n+1]={},pre1[n][n+1]={}; vector<pair<int,int>> v; int cnt=0; for (int i=0;i<n;i++) { int f=-1,s=-1; int f1=-1,s1=-1; for(int j=0;j<n;j++) { pre[i][j+1]=pre[i][j]+a[i][j],pre1[j][i+1]=pre1[j][i]+a[i][j]; if (!a[i][j]) s=j,f=(~f?f:j),cnt++; if (!a[j][i]) s1=j,f1=(~f1?f1:j); } if (~f) v.push_back({i,f}); if (s!=f) v.push_back({i,s}); s=s1,f=f1; if (~f) v.push_back({f,i}); if (s!=f) v.push_back({s,i}); } for (int i=0;i<n;i++) for (int j=0;j<n;j++) { if (a[i][j]) continue; for (auto [i1,j1]:v) { if (i==i1 && pre[i][j1]!=pre[i][j]) cnt++; if (j==j1 && pre1[j][i]!=pre1[j][i1]) cnt++; if (i!=i1 && j!=j1) { bool pos=0; if (pre[i][j]==pre[i][j1] && pre1[j1][i]==pre1[j1][i1]) pos=1; if (pre1[j][i]==pre1[j][i1] && pre[i1][j]==pre[i1][j1]) pos=1; if (!pos) cnt++; } } } return cnt; }
#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...