제출 #1080719

#제출 시각아이디문제언어결과실행 시간메모리
1080719andrei_iorgulescu고대 책들 (IOI17_books)C++14
0 / 100
1 ms1372 KiB
#include <bits/stdc++.h>
#include "books.h"
#warning That's not FB, that's my FB

using namespace std;

using ll = long long;

int n, s;
int p[1000005], pos[1000005];
vector<vector<int>> cyc;
vector<int> cur;
bool viz[1000005];

void dfs(int nod)
{
    viz[nod] = true;
    cur.push_back(nod);
    if (!viz[p[nod]])
        dfs(p[nod]);
}

ll minimum_walk(vector<int> PERM, int STR)
{
    cyc.clear();
    memset(viz,0,sizeof(viz));
    n = PERM.size();
    for (int i = 1; i <= n; i++)
        p[i] = PERM[i - 1] + 1, pos[p[i]] = i;
    s = STR;
    for (int i = 1; i <= n; i++)
    {
        if (!viz[i])
        {
            cur.clear();
            dfs(i);
            cyc.push_back(cur);
        }
    }
    ll ans = 0;
    for (int i = 1; i <= n; i++)
        ans += abs(i - p[i]);
    int adg = 0;
    int mxm = 0;
    int ult = 1;
    for (int i = 1; i <= n; i++)
    {
        if (mxm == i - 1 and i != 1)
            adg += 2;
        mxm = max(mxm, p[i]);
    }
    ans += adg;
    int pzz = n;
    while (pzz != 0 and p[pzz] == pzz)
        ans -= 2, pzz--;
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

books.cpp:3:2: warning: #warning That's not FB, that's my FB [-Wcpp]
    3 | #warning That's not FB, that's my FB
      |  ^~~~~~~
books.cpp: In function 'll minimum_walk(std::vector<int>, int)':
books.cpp:45:9: warning: unused variable 'ult' [-Wunused-variable]
   45 |     int ult = 1;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...