| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1353800 | Aviansh | BOI Acronym (BOI25_boi) | C++20 | 59 ms | 16084 KiB |
#include <bits/stdc++.h>
using namespace std;
struct dsu{
vector<int>root;
vector<int>siz;
dsu(int n){
root=vector<int>(n);
iota(root.begin(),root.end(),0);
siz=vector<int>(n,1);
}
int findRoot(int x){
if(x==root[x])
return x;
return root[x]=findRoot(root[x]);
}
bool unite(int x, int y){
x=findRoot(x);
y=findRoot(y);
if(x==y){
return 0;
}
if(siz[x]<siz[y]){
swap(x,y);
}
root[y]=x;
siz[x]+=siz[y];
return 1;
}
};
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int grid[n][n];
for(int i = 0;i<n;i++){
for(int j = i;j<n;j++){
cin >> grid[i][j];
}
}
dsu ds(n);
for(int i = 0;i<n;i++){
for(int j = i+1;j<n;j++){
if(grid[i][j]-grid[i][j-1]==1&&grid[i][j-1]==grid[i+1][j]){
ds.unite(i,j);
}
}
}
int ans = 0;
for(int i = 0;i<n;i++){
int x = ds.findRoot(i);
if(ds.siz[x]>ds.siz[ans]){
ans=x;
}
}
for(int i = 0;i<n;i++){
if(ds.findRoot(i)==ans){
cout << i+1 << " ";
}
}
return 0;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
