Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _ijps 0
- #define _CRT_SECURE_NO_DEPRECATE
- //#pragma comment(linker, "/STACK:667772160")
- #include <iostream>
- #include <cmath>
- #include <vector>
- #include <time.h>
- #include <map>
- #include <set>
- #include <deque>
- #include <cstdio>
- #include <cstdlib>
- #include <unordered_map>
- #include <bitset>
- #include <algorithm>
- #include <string>
- #include <fstream>
- #include <assert.h>
- #include <list>
- #include <cstring>
- using namespace std;
- #define name ""
- typedef unsigned long long ull;
- typedef long long ll;
- #define mk make_pair
- #define forn(i, n) for(ll i = 0; i < (ll)n; i++)
- #define fornn(i, q, n) for(ll i = (ll)q; i < (ll)n; i++)
- #define times clock() * 1.0 / CLOCKS_PER_SEC
- struct __isoff{
- __isoff(){
- if (_ijps)
- freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);//, freopen("test.txt", "w", stderr);
- //else freopen(name".in", "r", stdin), freopen(name".out", "w", stdout);
- //ios_base::sync_with_stdio(0);
- //srand(time(0));
- srand('C' + 'T' + 'A' + 'C' + 'Y' + 'M' + 'B' + 'A');
- }
- ~__isoff(){
- //if(_ijps) cout<<times<<'\n';
- }
- } __osafwf;
- const ull p1 = 131;
- const ull p2 = 129;
- const double eps = 1e-8;
- const double pi = acos(-1.0);
- const int infi = 1e9 + 7;
- const ll inf = 1e18 + 7;
- const ll dd = 2e5 + 7;
- const ll mod = 1e9 + 7;
- vector<int> P;
- int T = 0;
- int fi(int a){
- T++;
- if(P[a] == a){
- return a;
- }
- return P[a] = fi(P[a]);
- }
- int l = 0;
- int get(int a){
- if(P[a] == a){
- return 0;
- }
- return get(P[a]) + 1;
- }
- int main(){
- int n, m;
- cin >> n >> m;
- P.resize(n + 1);
- forn(i, n + 1){
- P[(int)i] = (int)i;
- }
- int e = 1, g = 2;
- forn(i, m / 2){
- cout << "1 " << g << ' ' << e << '\n';
- P[e] = g;
- e = g;
- g++;
- vector<pair<int, int> > Q(1, mk(0, n));
- fornn(i, 1, min(g, 1050)){ // просто ищу максимум
- int t = get((int)i);
- Q.push_back(mk(t, (int)i));
- sort(Q.begin(), Q.end());
- reverse(Q.begin(), Q.end());
- Q.pop_back();
- }
- int ee = Q[0].second;
- fi(ee);
- fi(n);
- cout << "0 " << ee << ' ' << n << '\n';
- }
- if(m % 2){
- cout << "0 1 2\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement