제출 #1242141

#제출 시각아이디문제언어결과실행 시간메모리
1242141AlperenT_Soccer Stadium (IOI23_soccer)C++20
1.50 / 100
195 ms31768 KiB
#include "soccer.h" #include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") #define pb push_back #define F first #define pii pair<int,int> #define all(a) a.begin(),a.end() #define S second #define sz(a) (int)a.size() #define rep(i , a , b) for(int i = (a) ; i <= (b) ; i++) #define per(i , a , b) for(int i = (a) ; i >= (b) ; i--) #define ld double #define int long long using namespace std ; const int maxn = 30 + 10 ,s = 1000 , inf = 1e9 , mod = 998244353; int32_t biggest_stadium(int32_t n, std::vector<std::vector<int32_t>> F){ int sm =0 ; rep(i ,0 ,n-1)rep(j ,0 ,n-1)if(F[i][j]==0)sm++ ; vector <pii> vec , vec2; int sm2= 0 , L = -1 , R =0 ; rep(i ,0 , n-1){ int l = -1 , r = -1; rep(j , 0 ,n-1){ if(l ==-1 && F[i][j]==0){ l= j ; if(L==-1) L =i ; } if(F[i][j]==0){ r = j ; R = i ; } } if(l!=-1) sm2 += r-l+1 ; vec.pb({l,r}) ; } if(sm!=sm2)return 0 ; int id =L ; rep(i ,L , R){ if(vec[i].S-vec[i].F > vec[id].S-vec[id].F){ id = i ; } } rep(i , L , id-1){ int l2 = vec[i].F , r2 = vec[i].S ; int l = vec[i+1].F , r = vec[i+1].S ; if(l <= l2 && r2 <= r){ }else{ return 0 ; } } per(i , R , id+1){ int l2 = vec[i].F , r2 = vec[i].S ; int l = vec[i-1].F , r = vec[i-1].S ; if(l <= l2 && r2 <= r){ }else{ return 0 ; } } return sm; }
#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...