PascalABC.NET 3.7:
##var sumOfAP := function(a1, an, d: real):real → (a1 + an)/2*((an - a1)/d+1);var (a, b) := ReadInteger2('Введите a и b:');var sE := sumOfAP(a + a mod 2, b - b mod 2, 2);var sO := sumOfAP(a + 1 - a mod 2, b - 1 + b mod 2, 2);Print('Результат:', sE - sO)Пояснение:
Используется формула для нахождения суммы первых n членов арифметической прогрессии: , где
— первый член прогрессии,
— последний член,
—разность прогрессии.
Поделитесь своими знаниями, ответьте на вопрос:
Программирование, паскаль/питон на фкн вшэ после 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();
}