Программирование, паскаль/питон
на фкн вшэ после 2 курса студенты выбирают себе специализацию. каждый студент составляет список приоритетов специализаций, на которые он хотел бы попасть. кроме того, у каждого студента есть его позиция в рейтинге (зависит от среднего за время обучения, у некоторых студентов позиция может совпадать). на каждой специализации есть максимальное количество студентов, которые могут быть на неё приняты.
справедливо распределить студентов в соответствие с их пожеланиями. необходимо чтобы для каждого студента выполнялось следующее утверждение: после распределения студента на специализацию на более приоритетных для него специализациях не должно быть ни одного студента, с позицией в рейтинге больше чем у него. при этом из всех распределений необходимо выбрать такое, в котором наибольшее число студентов было распределено по специализациям.
формат входных данных
в первой строке задается два числа: n и k (1 ≤ n, k ≤ 1) — количество студентов и специализаций соответственно.
в следующей строке задается k натуральных чисел si (1 ≤ si ≤ 1), где si — количество студентов, которые готова принять специализация номер i.
в следующих n строках содержится описание приоритетов для каждого из студентов. описание состоит из числа r (1 ≤ r ≤ n) — позиции студента в рейтинге, числа t (1 ≤ t ≤ n) — количества желаемых специализаций и t чисел от 1 до k — номера желаемых специализаций в порядке убывания приоритета. номера специализаций не повторяются. гарантируется, что сумма t для всех студентов не превосходит 106.
формат результата
для каждого из n студентов выведите номер специализации, на которую он будет распределен. в случае, если на всех желаемых специализациях все места заняты студентами с более высокой позицией в рейтинге, то для студента следует вывести число -1. если правильных ответов несколько — выведите любой из них.
1.
#include <iostream>
#include <vector>
using namespace std;
int main(){
int a,b;
cin>>a;
vector<int> v1;
vector<int> v2;
for(int i=0; i<a; i++){
cin>>b;
if (b%2==0) v1.emplace_back(b);
else v2.emplace_back(b);
}
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
for(auto & i: v1) cout<<i<<" ";
}
2.
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<float> v;
//здесь нам задают массив
sort(v.begin(), v.end());
cout<<v[0]<<v.back();
}