import java.util.LinkedList;
import java.util.Queue;
public class Cache {
public int solution(int cacheSize, String[] cities) {
int answer = 0;
Queue<String> cache = new LinkedList<>();
if (cacheSize == 0) {
return cities.length * 5;
}
for (String ele : cities) {
ele = ele.toUpperCase();
if (cache.isEmpty()) {
cache.offer(ele);
answer += 5;
} else if (!cache.isEmpty() && cache.size() <= cacheSize) {
if (cache.contains(ele)) {
answer++;
int size = cache.size();
for (int i = 0; i < size; i++) {
if (cache.peek().equals(ele)) {
cache.poll();
} else {
cache.offer(cache.poll());
}
}
} else {
answer += 5;
if (cache.size() == cacheSize) {
cache.poll();
}
}
cache.offer(ele);
}
}
return answer;
}
}