//201709-1
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
int main(){
int n;scanf("%d", &n);
int num = 0;
int five = n / 50;
int three = (n % 50) / 30;
int one = (n % 50) % 30;
num = (five * 5 + 2 * five) + (three * 3 + 1 * three) + one / 10;printf("%d\n", num);
return 0;}
//201709-1
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
//总酱油瓶数
int result = 0;
int tempSeven;
tempSeven = n / 50;//可以买几次5瓶酱油
result += tempSeven * 7;//因为买一次5瓶酱油可以送两瓶,所以买一次5瓶酱油,等于可以获得7瓶酱油
int tempFour;
tempFour = n % 50 / 30;//可以买几次3瓶酱油
result += tempFour * 4;//因为买一次3瓶酱油可以送一瓶,所以买一次3瓶酱油,等于可以获得4瓶酱油
int tempOne;
tempOne = n % 50 % 30 / 10;//可以买几次1瓶酱油
result += tempOne;printf("%d\n", result);
return 0;}
//201709-2
#include <bits/stdc++.h>
using namespace std;
struct Node{
int keyNum, beginTime, borrow;
Node(int keyNum, int beginTime, int borrow) : keyNum(keyNum), beginTime(beginTime), borrow(borrow){}bool operator<(const Node &obj) const{
if (beginTime != obj.beginTime)
return beginTime > obj.beginTime;
else if (borrow != obj.borrow)
return borrow > obj.borrow;
else
return keyNum > obj.keyNum;}};
int main(){
int n, k;scanf("%d%d", &n, &k);
int arr[n];
for (int i = 0; i < n; i++)
arr[i] = i + 1;
priority_queue<Node> pq;
for (int i = 0; i < k; i++){
int nowKeyNum, nowBeginTime, nowEndTime;scanf("%d%d%d", &nowKeyNum, &nowBeginTime, &nowEndTime);
pq.push(Node(nowKeyNum, nowBeginTime, 1));
pq.push(Node(nowKeyNum, nowBeginTime + nowEndTime, 0));}//取还钥匙
while (!pq.empty()){
Node node = pq.top();
pq.pop();
if (node.borrow){//取钥匙
int index = 0;
while (arr[index] != node.keyNum)
index++;
arr[index] = -1;}else{
int index = 0;
while (arr[index] != -1)
index++;
arr[index] = node.keyNum;}}
for (int i = 0; i < n; i++){
if (i != 0)printf(" ");printf("%d", arr[i]);}
return 0;}
//201709-2
#include <bits/stdc++.h>
using namespace std;
struct Node{
// 当前老师要使用的钥匙编号
int key;
int begin;
// 0表示取钥匙,1表示还钥匙
int state;};
bool cmp(Node a, Node b){
if (a.state != b.state)
return a.state > b.state;
else
return a.key < b.key;}int main(){
int n, k;scanf("%d%d", &n, &k);
vector<int> temp;
for (int i = 1; i <= n; i++)
temp.emplace_back(i);
map<int, vector<Node>> m;
while (k--){
// 对于每个老师,录入使用钥匙和还钥匙的两种状态
int useTime;
Node cur, beh;scanf("%d%d%d", &cur.key, &cur.begin, &useTime);
cur.state = 0;
beh.key = cur.key;
beh.begin = cur.begin + useTime;
beh.state = 1;
m[cur.begin].emplace_back(cur);
m[beh.begin].emplace_back(beh);}for (auto it:m){
auto time = it.second;sort(time.begin(), time.end(), cmp);
for (int i = 0; i < time.size(); i++)
if (time[i].state == 0){
// 取钥匙
for (int j = 0; j < temp.size(); j++)
if (temp[j] == time[i].key){
temp[j] = -1;
break;}} else
for (int j = 0; j < temp.size(); j++)
if (temp[j] == -1){
temp[j] = time[i].key;
break;}}
for (auto it:temp)printf("%d ", it);
return 0;}