您的位置:首页 > 其它

CodeForces 798D Mike and distribution(二维贪心 + 思维)

2017-11-20 22:49 489 查看
题目链接:点击打开链接

题意:

思路:

// CodeForces 798D Mike and distribution 运行/限制:62ms/2000ms
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int a[100005], b[100005], id[100005];
bool cmp(int &x, int &y) {
return a[x] > a[y];
}
int main() {
int n;
vector<int> re;
while (scanf("%d", &n) != EOF) {
re.clear();
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
id[i] = i;
}
for (int i = 1; i <= n; i++) {
scanf("%d", &b[i]);
}
sort(id + 1, id + n + 1, cmp);
re.push_back(id[1]);
for (int i = 2; i < n; i += 2) {
re.push_back(b[id[i]] > b[id[i + 1]] ? id[i] : id[i + 1]);
}
if (!(n & 1)) {
re.push_back(id
);
}
printf("%d\n", re.size());//n / 2 + 1
for (int i = 0; i < re.size(); i++) {
printf("%d%c", re[i], i == re.size() - 1 ? '\n' : ' ');
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: