제출 #613939

#제출 시각아이디문제언어결과실행 시간메모리
613939Mr_Husanboy고대 책들 (IOI17_books)C++14
50 / 100
168 ms16964 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; #define all(a) (a).begin(), (a).end() #define vi vector<int> #define ff first #define ss second #define ll long long struct Fenwick{ vector<int> t; void init(int n){ t.resize(n); } void inc(int i, int d = 1){ for(; i<t.size(); i|=i+1) t[i] += d; } int get(int i){ int res = 0; for(; i>=0; i = (i&(i+1))-1) res += t[i]; return res; } int get(int l, int r){ return get(r) - get(l-1); } }; long long minimum_walk(vector<int> p, int s) { int n = p.size(); ll tot = 0; Fenwick tr; tr.init(n); for(int i=0; i<n; i++){ tot += abs(i - p[i]); int mn = min(i, p[i]); int mx = max(i, p[i]); tr.inc(mn,1); tr.inc(mx,-1); } int r = n-1; while(r >=0 && tr.get(r)==0) r--; //cout << r << endl; // cout << "done" << endl; ll cnt = 0; for(int i = 0; i <=r; i ++){ cnt += tr.get(i)==0; } return tot + cnt*2; }

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

books.cpp: In member function 'void Fenwick::inc(int, int)':
books.cpp:18:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |         for(; i<t.size(); i|=i+1) t[i] += d;
      |               ~^~~~~~~~~
#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...