Submission #1072820

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
10728202024-08-24 05:34:24PenguinsAreCuteBuilding Skyscrapers (CEOI19_skyscrapers)C++17
22 / 100
3532 ms113552 KiB
#include <bits/stdc++.h>
using namespace std;
using i2 = pair<int,int>;
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define all(v) begin(v),end(v)
#define sz(v) int(v.size())
namespace ufds {
int par[1200005], sz[1200005], spec;
vector<int> child[1200005]; // "literally a child"
vector<int> toUp;
void init(int _spec) {
iota(par,par+1200005,0);
fill(sz,sz+1200005,0);
for(int i=0;i<1200005;i++) child[i]={i};
spec = _spec;
toUp = {spec};
}
int onion(int x) {return par[x]=(par[x]==x?x:onion(par[x]));}
void unite(int x, int y) {
x = onion(x); y = onion(y);
if(sz[x]>sz[y]) swap(x,y);
if(x==y) return;
if(x==onion(spec)) for(auto i: child[y]) toUp.push_back(i);
if(y==onion(spec)) for(auto i: child[x]) toUp.push_back(i);
for(auto i: child[x]) child[y].push_back(i);
sz[y]+=sz[x]; par[x]=y;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

skyscrapers.cpp: In function 'std::vector<int> build_skyscrapers(int, std::vector<int>, std::vector<int>)':
skyscrapers.cpp:126:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  126 |   if(perm.size()<n) {cout<<"F*CK\n"; exit(0);}
      |      ~~~~~~~~~~~^~
skyscrapers.cpp: At global scope:
skyscrapers.cpp:131:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  131 | main() {
      | ^~~~
#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...