Submission #289063

#TimeUsernameProblemLanguageResultExecution timeMemory
289063JoMeeAncient Books (IOI17_books)C++17
22 / 100
169 ms18740 KiB
#include "books.h"

#include <bits/stdc++.h>
using namespace std;

#define rep(i,a,n) for(int i = a; i<n; i++)
#define per(i,a,n) for(int i = n-1; i>=a; i--)

long long minimum_walk(vector<int> p, int s) {


	vector<int> sm(p.size(),0);
	rep(i,0,p.size()){
		if(i < p[i])sm[i]++,sm[p[i]]--;
	}
	rep(i,1,sm.size())sm[i] += sm[i-1];

	int rm = -1;
	per(i,0,p.size()){
		if(sm[i] != 0){
			rm = i;
			break;
		}
	}
	if(rm == -1)return 0;
	int res = 0;
	rep(i,0,rm){
		if(sm[i] != 0)res+=2*(sm[i]-1);
	}

	res += 2*(rm+1);
	return res;

}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:6:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 | #define rep(i,a,n) for(int i = a; i<n; i++)
......
   13 |  rep(i,0,p.size()){
      |      ~~~~~~~~~~~~                   
books.cpp:13:2: note: in expansion of macro 'rep'
   13 |  rep(i,0,p.size()){
      |  ^~~
books.cpp:6:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 | #define rep(i,a,n) for(int i = a; i<n; i++)
......
   16 |  rep(i,1,sm.size())sm[i] += sm[i-1];
      |      ~~~~~~~~~~~~~                  
books.cpp:16:2: note: in expansion of macro 'rep'
   16 |  rep(i,1,sm.size())sm[i] += sm[i-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...