Submission #1347329

#TimeUsernameProblemLanguageResultExecution timeMemory
1347329qs1Magija (COCI26_magija)C++20
73 / 110
1096 ms3936 KiB
#include<bits/stdc++.h>
using namespace std;
#define lli long long int


lli f(lli x,vector<lli>&v){
  lli a=v[x];
  if(x!=a){
    v[x]=f(a,v);
  }
  return v[x];
}


int main(){
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  lli x,y,a,b,c,an,bn,am,bm;
  cin>>x>>y;
  vector<lli>va(x),vb(x);
  for(lli i=0;i<x;i++){
    va[i]=vb[i]=i;
  }
  while(y--){
    cin>>a;
    if(a==1){
      cin>>a;
      a--;
      cout<<f(a,va)+1<<" "<<f(a,vb)+1<<endl;
    }
    else{
      cin>>a>>b>>c;
      a-=2;
      b-=2;
      while(c--){
        a++;
        b++;
        an=f(a,va);
        bn=f(b,va);
        if(an!=bn){
          am=f(a,vb);
          bm=f(b,vb);
          va[an]=min(va[an],va[bn]);
          va[bn]=min(va[an],va[bn]);
          vb[am]=max(vb[am],vb[bm]);
          vb[bm]=max(vb[am],vb[bm]);
        }
      }
    }
  }
}
#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...