15 спичек выложены в один ряд. Необходимо собрать их в кучки по 3 спички в каждой. Перекладывать спички можно только по одной, каждый раз «перескакивая» через 3
спички.
При разработке алгоритма решения задачи используйте команды вида: «6 к 10», где 6 –
номер перекладываемой спички, а 10 – номер спички, к которой кладется
перекладываемая.
Пример работы:
То что не в vs, значения никак не имеет: c# везде один.
#include <iostream>
#include <vector>
#include <cmath>
#include <set>
using namespace std;
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
signed main() {
set<pair<int,int>> s;
int n;
cin >> n;
vector<int> a(n);
for(int &i:a)
cin >> i;
int m;
cin >> m;
while(m--){
int x,y;
cin >> x >> y;
s.insert({x,y});
s.insert({y,x});
}
for(int i = 0; i < n; i++)
for(int j = 0; j < n - i - 1; j++)
if(a[j] > a[j+1] && s.find({a[j],a[j+1]}) == s.end())
swap(a[j],a[j+1]);
for(int &i:a)
cout << i << " ";
}