
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
Arrays.sort(score);
for(int i = 0 ; i < score.length / 2 ; i++){
int tmp = score[i];
score[i] = score[score.length - i - 1];
score[score.length - i - 1] = tmp;
}
for(int i = 0 ; i < score.length ; i += m){
if(i + m > score.length){
break;
}
answer += score[i + m - 1] * m;
}
return answer;
}
}
class Solution {
public int[] solution(int[] answers) {
int[][] supo = {{1,2,3,4,5}, {2,1,2,3,2,4,2,5},{3,3,1,1,2,2,4,4,5,5}};
int[] result = new int[3];
int max = 0;
for(int i = 0 ; i < answers.length ; i++){
result[0] += supo[0][i % 5] == answers[i] ? 1 : 0;
result[1] += supo[1][i % 8] == answers[i] ? 1 : 0;
result[2] += supo[2][i % 10] == answers[i] ? 1 : 0;
max = Math.max(Math.max(Math.max(max,result[0]),result[1]),result[2]);
}
int len = 0;
for(int cur : result){
if(max == cur)len++;
}
int[] answer = new int[len];
int idx = 0;
for(int i = 0 ; i < 3; i ++){
if(result[i] == max){
answer[idx++] = i + 1;
}
}
return answer;
}
}
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
boolean[] isPrime = new boolean[3000];
Arrays.fill(isPrime, true);
isPrime[0] = isPrime[1] = false;
for(int i = 2 ; i * i < 3000 ; i++){
if(isPrime[i]){
for(int j = i * i; j < 3000 ; j += i){
isPrime[j] = false;
}
}
}
for(int i = 0 ; i < nums.length - 2 ; i++){
for(int j = i + 1 ; j < nums.length - 1 ; j++){
for(int k = j + 1 ; k < nums.length ; k++){
if(isPrime[nums[i] + nums[j] + nums[k]]){
answer++;
}
}
}
}
return answer;
}
}
class Solution {
public int solution(int n, int m, int[] section) {
int answer = 0;
int len = section.length;
int idx = 0;
while(idx < len){
int curIdx = section[idx];
int curPaintLen = curIdx + m - 1;
while(idx < len){
if(section[idx] <= curPaintLen){
idx++;
}else{
break;
}
}
answer++;
}
return answer;
}
}
class Solution {
public int solution(int number, int limit, int power) {
int answer = 0;
int[] divisor = new int[number + 1];
for(int i = 1 ; i <= number; i++){
for(int j = i ; j <= number ; j += i){
divisor[j]++;
}
}
for(int i = 1 ; i <= number ; i++){
answer += divisor[i] > limit ? power : divisor[i];
}
return answer;
}
}