✅ P7910 76pts (TLE)
This commit is contained in:
parent
783cd3980a
commit
64e55d4c4b
@ -23,4 +23,5 @@ add_executable(Playground
|
|||||||
take-most-space-element/main.cc
|
take-most-space-element/main.cc
|
||||||
walking-in-maze/main.cc
|
walking-in-maze/main.cc
|
||||||
network-connection/main.cpp
|
network-connection/main.cpp
|
||||||
eating-snake/main.cc)
|
eating-snake/main.cc
|
||||||
|
insert-sort/main.cc)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
//#define ENABLE_LOG
|
#define ENABLE_LOG
|
||||||
|
|
||||||
struct snake {
|
struct snake {
|
||||||
int id;
|
int id;
|
||||||
@ -29,8 +29,8 @@ bool sort_by_id(snake a, snake b) {
|
|||||||
return b.id > a.id;
|
return b.id > a.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void eat(vector<snake> &vec, bool skip_sort = false) {
|
bool eat(vector<snake> &vec, bool skip_sort = false, int initial_id = 0) {
|
||||||
if (vec.size() < 2) return;
|
if (vec.size() < 2) return true;
|
||||||
if (!skip_sort) {
|
if (!skip_sort) {
|
||||||
sort(vec.begin(), vec.end());
|
sort(vec.begin(), vec.end());
|
||||||
}
|
}
|
||||||
@ -42,8 +42,8 @@ void eat(vector<snake> &vec, bool skip_sort = false) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!(vec[0] >= vec[vec.size() - 1])) {
|
if (!(vec[initial_id] >= vec[vec.size() - 1])) {
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this snake ate the last snake
|
// If this snake ate the last snake
|
||||||
@ -53,7 +53,7 @@ void eat(vector<snake> &vec, bool skip_sort = false) {
|
|||||||
printf("%d gonna to eat %d\n", curr.id, last.id);
|
printf("%d gonna to eat %d\n", curr.id, last.id);
|
||||||
#endif
|
#endif
|
||||||
vec.pop_back();
|
vec.pop_back();
|
||||||
vec[0].power -= last.power;
|
vec[initial_id].power -= last.power;
|
||||||
sort(vec.begin(), vec.end());
|
sort(vec.begin(), vec.end());
|
||||||
if (vec[0].id != curr.id) {
|
if (vec[0].id != curr.id) {
|
||||||
bool will_be_eaten = false;
|
bool will_be_eaten = false;
|
||||||
@ -86,7 +86,6 @@ void eat(vector<snake> &vec, bool skip_sort = false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
vec.push_back(last);
|
vec.push_back(last);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
insert-sort/data.in
Normal file
6
insert-sort/data.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
3 4
|
||||||
|
3 2 1
|
||||||
|
2 3
|
||||||
|
1 3 2
|
||||||
|
2 2
|
||||||
|
2 3
|
38
insert-sort/main.cc
Normal file
38
insert-sort/main.cc
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// The question want me to impl a sort by my self
|
||||||
|
// But absolutely not
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int n, Q;
|
||||||
|
cin >> n >> Q;
|
||||||
|
int arr[n + 5];
|
||||||
|
|
||||||
|
for (int i = 1; i <= n; i++) {
|
||||||
|
cin >> arr[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < Q; i++) {
|
||||||
|
int op;
|
||||||
|
cin >> op;
|
||||||
|
if (op == 1) {
|
||||||
|
int x, v;
|
||||||
|
cin >> x >> v;
|
||||||
|
arr[x] = v;
|
||||||
|
} else {
|
||||||
|
int xn;
|
||||||
|
cin >> xn;
|
||||||
|
int it = arr[xn];
|
||||||
|
int pos = n;
|
||||||
|
for (int j = 1; j < xn; j++) {
|
||||||
|
if (arr[j] > it) pos--;
|
||||||
|
}
|
||||||
|
for (int j = xn + 1; j <= n; j++) {
|
||||||
|
if (arr[j] >= it) pos--;
|
||||||
|
}
|
||||||
|
cout << pos << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user