# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1175945 | p714f6urs | A Plus B (IOI23_aplusb) | C++20 | 0 ms | 0 KiB |
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
int* smallest_sums(int N, int A[], int B[]) {
int *result = new int[N];
int *BI = new int[N];
memset(BI, 0, N*sizeof(int));
for(int RI = 0; RI < N; RI++) {
int LI = INT32_MAX, min = INT32_MAX, minidx;
for(int AI = 0; AI < N; AI++) {
if(BI[AI] >= LI) break;
int sum = A[AI] + B[BI[AI]];
if(sum < min) {
min = sum;
minidx = AI;
}
LI = BI[AI];
}
BI[minidx] ++;
result[RI] = min;
}
delete [] BI;
return result;
}