B. Two Cakes
two
2023-06-13 09:17:22 时间
Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) |
---|
题意:两个人都从最左边出发,对于每个人来说都要拿够从 1 - n 的每个数,相邻两个数距离是 1,问最小花费步数可以让两个人全部拿够。
&:排序,依次选取就可以。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
ll x;
ll idx;
}s[200005];
bool vis[200005];
bool cmp(struct node a, struct node b)
{
if(a.x == b.x) return a.idx < b.idx;
else return a.x < b.x;
}
int main()
{
ll n;
while(~scanf("%lld", &n))
{
for(ll i = 0; i < 2*n; i ++)
{
scanf("%lld", &s[i].x);
s[i].idx = i;
}
sort(s,s+2*n,cmp);
ll sum = 0;
memset(vis,false,sizeof(vis));
ll last = 0;
ll lasto = 0;
ll num = 0;
// for(ll i = 0; i < 2* n; i ++) printf("%lld %lld \n",s[i].x,s[i].idx);
for(ll i = 0; i < 2*n; i +=2)
{
sum += abs(s[i].idx - last);
last = s[i].idx;
}
last = 0;
for(ll i = 1; i < 2 * n; i += 2){
sum += abs(s[i].idx - last);
last = s[i].idx;
}
printf("%lld\n", sum);
}
return 0;
}
相关文章
- EasyLeetCode 02,两数相加(Add Two Numbers)
- LeetCode第三题,五个版本迭代优化带你吃透two pointers算法
- ORA-40027: Target attribute has more than two distinct values ORACLE 报错 故障修复 远程处理
- ORA-03132: two-task default value overflow ORACLE 报错 故障修复 远程处理
- ORA-09315: sql2tt: two-task error translating ORACLE_EXECUTABLE ORACLE 报错 故障修复 远程处理
- ORA-09352: Windows 32-bit Two-Task driver unable to spawn new ORACLE task ORACLE 报错 故障修复 远程处理
- ORA-09363: Windows 3.1 Two-Task driver invalid context area ORACLE 报错 故障修复 远程处理
- ORA-13350: two or more rings of a complex polygon touch ORACLE 报错 故障修复 远程处理
- ORA-16622: two or more broker database objects resolve to the same database ORACLE 报错 故障修复 远程处理
- leetcode(4) Median of Two Sorted Arrays详解编程语言