# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1065256 | LittleOrange | 축구 경기장 (IOI23_soccer) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "soccer.h"
#include<bits/stdc++.h>
using namespace std;
using ll = int;
struct pos{
ll x,y;
bool operator<(const pos &o) const{
return x!=o.x?x<o.x:y<o.y;
}
};
struct dsu{
ll c;
vector<ll> p;
dsu(ll N):c(N),p(N,-1){}
ll g(ll i){
return p[i]<0?i:p[i] = g(p[i]);
}
bool m(ll a, ll b){
a = g(a),b=g(b);
if(a==b) return false;
c--;
if(p[a]>p[b]) swap(a,b);
p[a] += p[b];
p[b] = a;
return true;
}
}
int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
auto &a = F;
ll n = N;
vector<pos> v;
for(ll i = 0;i<n;i++){
for(ll j = 0;j<n;j++){
if (F[i][j]){
ll v1 = j*n+(n-i-1)*(n-j);
ll v2 = j*n+i*(n-j);
ll v3 = (n-j-1)*n+(n-i-1)*(j+1);
ll v4 = (n-j-1)*n+i*(j+1);
return max({v1,v2,v3,v4});
}
}
}
return 0;
}