Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // console_her
- //
- // Created by Святой Отец on 26.06.17.
- // Copyright © 2017 Святой Отец. All rights reserved.
- //
- #include <cstdlib>
- #include <fstream>
- #include <string>
- using namespace std;
- ifstream fin("dsu.in");
- ofstream fout("dsu.out");
- int n;
- struct set{
- int max;
- int min;
- int size;
- };
- set* unions[100001];
- void combine(int num1, int num2){
- unions[num1]->max = unions[num2]->max;
- unions[num1]->size += unions[num2]->size;
- unions[num2] = unions[num1];
- }
- void get(int num1){
- fout<<unions[num1]->min<<unions[num1]->max<<unions[num1]->size;
- }
- int main(){
- int num1, num2;
- fin>>n;
- string command;
- for(int i=0; i<n; i++){
- unions[i]=new set;
- unions[i]->min=i+1;
- unions[i]->max=i+1;
- unions[i]->size=1;
- }
- while(fin>>command){
- switch(command[0]){
- case 'u':{
- fin>>num1>>num2;
- (num1>num2)?combine(num2, num1):combine(num1, num2);
- }break;
- case 'g':{
- fin>>num1;
- get(num1);
- }break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment