Compare commits
13 Commits
3e69d7713e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| b4dff1d344 | |||
| b3cd28471e | |||
| b15648a17c | |||
| bfb79e573d | |||
| 34eac82c7a | |||
| d4aaefa130 | |||
| 7706721eb1 | |||
| df8fb68a1d | |||
| 97f1636c57 | |||
| 843f2ef321 | |||
| 63ecdae57b | |||
| 21d51e4af9 | |||
| b9a8ea6bad |
@@ -1,103 +0,0 @@
|
|||||||
#include <algorithm>
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#define let auto
|
|
||||||
#define fn auto
|
|
||||||
#define usize size_t
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
#define UD 1'000'000
|
|
||||||
|
|
||||||
fn fastio() {
|
|
||||||
ios::sync_with_stdio(false);
|
|
||||||
cin.tie(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() -> int {
|
|
||||||
fastio();
|
|
||||||
usize n, m;
|
|
||||||
cin >> n >> m;
|
|
||||||
|
|
||||||
let arr = new usize[5 * m];
|
|
||||||
|
|
||||||
let music = new usize[n];
|
|
||||||
let cnts = new usize[n];
|
|
||||||
for (usize i = 0; i < n; i++) {
|
|
||||||
music[i] = UD;
|
|
||||||
cnts[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (usize i = 0; i < m; i++) {
|
|
||||||
for (usize j = 0; j < 4; j++) {
|
|
||||||
cin >> arr[5 * i + j];// idx
|
|
||||||
arr[5 * i + j] -= 1;
|
|
||||||
cnts[arr[5 * i + j]]++;
|
|
||||||
}
|
|
||||||
cin >> arr[5 * i + 4];
|
|
||||||
}
|
|
||||||
|
|
||||||
let cntv = vector<pair<usize, usize>>();
|
|
||||||
for (usize i = 0; i < n; i++) {
|
|
||||||
cntv.push_back(pair(cnts[i], i));
|
|
||||||
}
|
|
||||||
|
|
||||||
sort(cntv.begin(), cntv.end());
|
|
||||||
reverse(cntv.begin(), cntv.end());
|
|
||||||
|
|
||||||
usize tot = 0;
|
|
||||||
usize before = 0;
|
|
||||||
for (let it = cntv.begin(); it < cntv.end(); it++) {
|
|
||||||
if (tot > 3 * m) {
|
|
||||||
music[before] = UD;
|
|
||||||
break;
|
|
||||||
} else if (tot == 3 * m) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
tot += it->first;
|
|
||||||
music[it->second] = 0;
|
|
||||||
before = it->second;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (usize i = 0; i < m; i++) {
|
|
||||||
let x = arr[5 * i + 0];
|
|
||||||
let y = arr[5 * i + 1];
|
|
||||||
let z = arr[5 * i + 2];
|
|
||||||
let w = arr[5 * i + 3];
|
|
||||||
let k = arr[5 * i + 4];
|
|
||||||
let mx = music[x];
|
|
||||||
let my = music[y];
|
|
||||||
let mz = music[z];
|
|
||||||
let mw = music[w];
|
|
||||||
let key = (mx % 4 + my % 4 + mz % 4 + mw % 4) % 4;
|
|
||||||
if ((mx + my + mz + mw) / UD == 1) {
|
|
||||||
if (mx == UD) {
|
|
||||||
music[x] = (k + 4 - key) % 4;
|
|
||||||
} else if (my == UD) {
|
|
||||||
music[y] = (k + 4 - key) % 4;
|
|
||||||
} else if (mz == UD) {
|
|
||||||
music[z] = (k + 4 - key) % 4;
|
|
||||||
} else {
|
|
||||||
music[w] = (k + 4 - key) % 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (usize i = 0; i < n; i++) {
|
|
||||||
if (music[i] == UD) {
|
|
||||||
music[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (usize i = 0; i < n; i++) {
|
|
||||||
cout << music[i] << " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
delete[] arr;
|
|
||||||
delete[] music;
|
|
||||||
delete[] cnts;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
#include <algorithm>
|
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#define let auto
|
|
||||||
#define fn auto
|
|
||||||
#define usize size_t
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
fn fastio() {
|
|
||||||
ios::sync_with_stdio(false);
|
|
||||||
cin.tie(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() -> int {
|
|
||||||
fastio();
|
|
||||||
usize r, u, n;
|
|
||||||
cin >> r >> u >> n;
|
|
||||||
|
|
||||||
usize cnt = r * u;
|
|
||||||
if (n <= 10) {
|
|
||||||
usize fibn = 2;
|
|
||||||
usize fibns1 = 1;
|
|
||||||
usize fibns2 = 1;
|
|
||||||
|
|
||||||
for (usize i = 3; i < n; i++) {
|
|
||||||
fibns2 = fibns1;
|
|
||||||
fibns1 = fibn;
|
|
||||||
fibn = fibns2 + fibns1;
|
|
||||||
}
|
|
||||||
usize delta = ((u - 1) * fibns1 + (r - 1) * fibns2);
|
|
||||||
cout << delta / fibns1 + delta / fibns2 - (delta / (fibns1 * fibns2)) + 1 << endl;
|
|
||||||
} else {
|
|
||||||
cout << cnt << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
#include <algorithm>
|
|
||||||
#include <iostream>
|
|
||||||
#include <queue>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#define let auto
|
|
||||||
#define fn auto
|
|
||||||
#define usize size_t
|
|
||||||
|
|
||||||
#define UMAX 0xfffffff
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
fn fastio() {
|
|
||||||
ios::sync_with_stdio(false);
|
|
||||||
cin.tie(nullptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Fire {
|
|
||||||
usize f;
|
|
||||||
usize v;
|
|
||||||
};
|
|
||||||
|
|
||||||
fn main() -> int {
|
|
||||||
fastio();
|
|
||||||
let _comp = [](Fire &a, const Fire &b) { return a.f < b.f; };
|
|
||||||
usize n, m;
|
|
||||||
cin >> n >> m;
|
|
||||||
|
|
||||||
let fs = vector<Fire>(n);
|
|
||||||
let bs = vector<usize>(m);
|
|
||||||
|
|
||||||
for (usize i = 0; i < n; i++) {
|
|
||||||
cin >> fs[i].f;
|
|
||||||
cin >> fs[i].v;
|
|
||||||
}
|
|
||||||
|
|
||||||
sort(fs.begin(), fs.end(), _comp);
|
|
||||||
|
|
||||||
for (usize i = 0; i < m; i++) {
|
|
||||||
cin >> bs[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1pass
|
|
||||||
usize last = UMAX;
|
|
||||||
let vfx = vector<usize>();
|
|
||||||
for (usize i = 0; i < m; i++) {
|
|
||||||
let t = bs[i];
|
|
||||||
|
|
||||||
Fire tf = {
|
|
||||||
.f = t,
|
|
||||||
.v = 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (last == UMAX) {
|
|
||||||
last = m;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2pass
|
|
||||||
sort(vfx.begin(), vfx.end());
|
|
||||||
let heap = priority_queue<usize>();
|
|
||||||
usize total_v = 0;
|
|
||||||
while (vfx.size() > 0) {
|
|
||||||
let key = *(vfx.end() - 1);
|
|
||||||
vfx.pop_back();
|
|
||||||
while (fs.size() > 0 && (fs.end() - 1)->f >= key) {
|
|
||||||
heap.push((fs.end() - 1)->v);
|
|
||||||
fs.pop_back();
|
|
||||||
}
|
|
||||||
|
|
||||||
total_v += heap.top();
|
|
||||||
heap.pop();
|
|
||||||
}
|
|
||||||
|
|
||||||
cout << last << " " << total_v << endl;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user