제출 #790916

#제출 시각아이디문제언어결과실행 시간메모리
790916fatemetmhr고대 책들 (IOI17_books)C++17
50 / 100
152 ms28672 KiB
// ~ Be Name Khoda ~ // #include "books.h" #include <bits/stdc++.h> //#pragma GCC optimize ("O3") //#pragma GCC target("avx2") //#pragma GCC optimize("unroll-loops,Ofast") using namespace std; typedef long long ll; #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define fi first #define se second const int maxn = 1e6 + 10; const int maxn5 = 1e6 + 10; const int maxnt = 1.2e6 + 10; const int maxn3 = 1e3 + 10; const int mod = 1e9 + 7; const ll inf = 1e18; ll ans = 0; int per[maxn5], req[maxn5], cmp[maxn5], ps[maxn5]; int num = 0, av[maxn5], cnt = 0; bool mark[maxn5]; void dfs(int v){ mark[v] = true; req[min(v, per[v])]++; req[max(v, per[v])]--; ans += abs(v - per[v]); cnt++; cmp[v] = num; if(!mark[per[v]]) dfs(per[v]); } int get(int l, int r){ if(l > r) return 0; return ps[r] - (l ? ps[l - 1] : 0); } long long minimum_walk(std::vector<int> p, int s) { int n = p.size(); int mx = 0; for(int i = 0; i < n; i++){ per[i] = p[i]; if(i != per[i]){ s = min(s, i); mx = max(mx, i); } } int good = 0; fill(av, av + n + 5, n + 10); for(int i = 0; i < n; i++) if(!mark[i]){ cnt = 0; dfs(i); if(cnt > 1) good++; num++; } int emp = 0, cur = 0; for(int i = 0; i < n; i++){ cur += req[i]; if(i) ps[i] = ps[i - 1]; if(!cur) ps[i]++; } //cout << s << ' ' << mx << endl; return ans + 2 * get(s, mx - 1); }

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

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:69:6: warning: unused variable 'emp' [-Wunused-variable]
   69 |  int emp = 0, cur = 0;
      |      ^~~
#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...