제출 #542829

#제출 시각아이디문제언어결과실행 시간메모리
542829zggfAncient Books (IOI17_books)C++14
50 / 100
191 ms28800 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; vector<int> parent, ranga; int find(int x){ if(parent[x]==-1) return x; parent[x] = find(parent[x]); return parent[x]; } void join(int a, int b){ a = find(a); b = find(b); if(a==b) return; if(ranga[a]>ranga[b]){ parent[b] = a; }else if(ranga[b]>ranga[a]){ parent[a] = b; }else{ parent[b] = a; ranga[a]++; } } long long minimum_walk(std::vector<int> p, int s) { int n = p.size(); vector<int> odw(n); parent.resize(n, -1); ranga.resize(n); long long wyn = 0; vector<pair<int, int>> inp; for(int i = 0; i < n; i++){ int pt = i; if(!odw[pt]){ if(p[pt]!=pt){ int mini = 1e9; int maxi = -1e9; while(!odw[pt]){ mini = min(mini, pt); maxi = max(maxi, pt); odw[pt] = true; wyn+=abs(p[pt]-pt); pt = p[pt]; } inp.push_back({mini, maxi}); }else{ odw[pt] = true; } } } inp.push_back({s, s}); sort(inp.begin(), inp.end()); int dal = 0; for(int i = 0; i < inp.size()-1; i++){ dal = max(dal, inp[i].second); while(inp[i+1].first<dal){ i++; dal = max(dal, inp[i].second); if(i==inp.size()-1) break; } if(i<inp.size()-1){ wyn+=2*(inp[i+1].first-dal); } } return wyn; }

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

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:57:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |  for(int i = 0; i < inp.size()-1; i++){
      |                 ~~^~~~~~~~~~~~~~
books.cpp:62:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |    if(i==inp.size()-1) break;
      |       ~^~~~~~~~~~~~~~
books.cpp:64:7: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |   if(i<inp.size()-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...