-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCodeforces_Taxi.cpp
More file actions
107 lines (82 loc) · 1.83 KB
/
Codeforces_Taxi.cpp
File metadata and controls
107 lines (82 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <bits/stdc++.h>
using namespace std;
int main() {
long long int nOfgroups;
cin >> nOfgroups;
long long int n1 = 0, n2 = 0, n3 = 0, n4 = 0;
long long int nOfc = 0;
for(long long int i = 0; i < nOfgroups; i++) {
int group;
cin >> group;
if(group == 1) {
n1++;
}
else if(group == 2) {
n2++;
}
else if(group == 3) {
n3++;
}
else if(group == 4) {
n4++;
}
}
cout << n1 << " <- n1 " << n2 << " <- n2 " << n3 << " <- n3 " << n4 << " <- n4 " << endl;
if(n4 != 0) {
nOfc += n4;
n4 = 0;
}
if(n3 > n1) {
long long int calc = n3 - n1;
nOfc += n1;
n1 = 0;
n3 = calc;
}
else if(n1 > n3) {
int calc = n1 - n3;
nOfc += n3;
n3 = 0;
n1 = calc;
}
else if(n1 == n3) {
nOfc += n1;
n1 = 0;
n3 = 0;
}
if(n2 > 0 && n2 % 2 == 0) {
nOfc += (n2 / 2);
n2 = 0;
}
else if(n2 > 0 && n2 % 2 != 0) {
nOfc += (n2 / 2);
n2 = (n2 % 2);
}
if(n1 > 0) {
while(n1 != 0) {
if(n1 >= 2 && n2 > 0) {
nOfc++;
n2--;
n1 -= 2;
}
else if(n1 >= 4) {
nOfc++;
n1 -= 4;
}
else {
nOfc++;
n1 = 0;
}
}
}
if(n3 > 0) {
nOfc += n3;
n3 = 0;
}
if(n2 > 0) {
nOfc++;
n2 = 0;
}
cout << nOfc << " <- nOfc " << endl;
cout << "aftr " << n1 << " <- n1 " << n2 << " <- n2 " << n3 << " <- n3 " << n4 << " <- n4 " << endl;
return 0;
}