swap() - փոփոխականները տեղերով փոխել

Շատ հաճախ կարիք է լինում փոփոխականները տեղերով փոխել, օրինակ՝ a ամբոջղ թվին վերագրել b ամբողջ թվի արժեքը, իսկ b-ինը՝ a-ին։ Դա կարելի է անել մի քանի եղանակով՝
 
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int a = 100;
	int b = 77;
	cout << a << " " << b << endl;

	int tmp = a;
	a = b;
	b = tmp;
	cout << a << " " << b << endl;
	return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int a = 100;
    int b = 77;
    cout << a << " " << b << endl;

    swap(a, b);
    cout << a << " " << b << endl;
    return 0;
}
Մի դեպքում օգտագործում ենք հավելյալ tmp փոփոխական և դրա միջոցով տեղերով փոխում ենք a-ի և b-ի արժեքները, իսկ մյուս դեպքում օգտագործում ենք <algorithm> գրադարանի մեջ եղած swap հրամանը։ Երկու ծրագրերն էլ կտպեն՝
100 77
77 100
 
Վարժություն՝
Մուտքում ունենալով n հատ թիվ և k հատ գործողություն, անհրաժեշտ է կատարել այդ գործողությունները և տպել ստացված թվերի հաջորդականությունը։ Ամեն գործողություն իրենից ներկայացնում է երկու ինդեքսի տեղերով փոխել։ Այսինքն ունենալով i1 և i2 ինդեքսներ անհրաժեշտ է թվերի հաջորդականության մեջ փոխել i1-րդ էլեմենտի և i2-րդ էլեմենտի տեղերը։
Մուտքի առաջին տողում տրված են n և k թվերն իրարից բացատով առանձնացված։
Երկրորդ տողում տրված է n հատ ամբողջ թիվ։ Երրորդ տողում տրված է k հատ թվի զույգ 1-ից n միջակայքում, որոնք պետք է տեղերով փոխել։
Ելքի միակ տողում տպեք ստացված թվերի հաջորդականությունը։
Մուտք
Ելք
5 3 1 2 3 4 5 1 3 2 4 3 5
3 4 5 2 1
 

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue