B.Two Cakes
阿新 • • 發佈:2019-02-28
div lse out 必須 給定 bits sin esp cout
鏈接:https://codeforces.com/contest/1130/problem/B
題意:
給定n和 2 * n個數,表示i位置賣ai層蛋糕,
有兩個人在1號,必須嚴格按照1-n的順序買蛋糕,同時每個店只買一個蛋糕 。
求所需的最短時間。
思路:
將每種蛋糕對應位置記錄在二維數組。
從1-n挨個買,根據上一次的位置算出消耗。
代碼:
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 1e5 + 10; int a[MAXN][2]; int main() { int n, x; cin >> n; for (int i = 1;i <= n * 2;i++) { cin >> x; if (a[x][0]) a[x][1] = i; else a[x][0] = i; } int p1 = 1, p2 = 1; LL res = 0; for (int i = 1;i <= n;i++) { res += abs(a[i][0] - p1) + abs(a[i][1] - p2); p1 = a[i][0]; p2 = a[i][1]; } cout << res << endl; return 0; }
B.Two Cakes