#include <iostream>
struct Node {
int value;
Node *next;
};
void RecursiveOutput( Node* item )
{
if ( item != 0 )
{
RecursiveOutput(item->next);
std::cout << item->value << std::endl;
}
}
void RecursiveInput( int n, int index = 1, Node* item = 0 )
{
if ( index <= n )
{
Node data;
std::cin >> data.value;
data.next = item;
RecursiveInput( n, index + 1, &data );
} else {
std::cout << "RecursiveOutput" << std::endl;
RecursiveOutput(item);
}
}
int DEPTH = 3;
int main()
{
std::cout << "input values: " << std::endl;
RecursiveInput(DEPTH);
std::cout << "end" << std::endl;
return 0;
}
class Solution {
private:
int sumAP(int n, int m) {
int c = n / m;
return m * c * (c + 1) / 2;
}
public:
int sumOfMultiples(int n) {
return sumAP(n, 3) + sumAP(n, 5) + sumAP(n, 7)
- sumAP(n, 3 * 5) - sumAP(n, 3 * 7) - sumAP(n, 5 * 7)
+ sumAP(n, 3 * 5 * 7);
}
};
function floorCount(start, max) {
let result = 0;
let prevStart = -1;
while (start > 0) {
for (let x = start; x <= max && x !== prevStart; x = x % 2 ? 2 * x : 2 * x - 1) {
result++;
}
prevStart = start;
start = start < 2 ? 0 : start % 2 ? (start + 1) / 2 : start / 2;
}
return result;
}
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n, max_quality = 0, prev_max_quality = 0;
stack<int> s;
cin >> n;
for (int i = 0; i < n; i++) {
int event;
cin >> event;
if (event == 0) {
// если извлекаем желудь, то выводим максимальное качество
int top = s.top();
s.pop();
if (top == max_quality) {
max_quality = prev_max_quality;
}
cout << max_quality << endl;
} else {
// если нашли новый желудь, то добавляем его в стек
prev_max_quality = max_quality;
s.push(event);
max_quality = max(max_quality, event);
}
}
return 0;
}
queue<int> ends; // очередь окончаний
int startTime = 0; // возможный старт
for (int i = 0; i < numPackets; i++) {
int arrival, duration;
cin >> arrival >> duration;
// выясняем, когда на самом деле можно стартовать пакет
int realStart = max(startTime, arrival);
// Извлекаем из очереди пакеты, которые обработаны на момент старта
while (!ends.empty() && ends.front() <= arrival) {
ends.pop();
}
if (ends.size() < bufferSize) {
// если на момент старта есть места в очереди, стартуем
cout << realStart << endl;
startTime = realStart + duration; // окончание обработки
ends.push(startTime);
} else {
// Очередь полна, пакет не может быть обработан
cout << -1 << endl;
}
}
int i, pos = 0;
for (i = 1; i < y; i++) {
if (a[i] != a[pos]) {
a[++pos] = a[i];
}
}
for (i = pos + 1; i < y; i++) {
a[i] = 0;
}
почему в первом тесте ответ 2 5, а не 1 4индексы здесь начинаются с 1, а не с 0.