読者です 読者をやめる 読者になる 読者になる

個人的自由ノート

ふと自分が気になった事を書いてます

Paizaの問題、普通には解けないような。

多分、何か法則があると思うので、プログラミングの知識だけでは無理かも。ここでギブアップです。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare_int(const void *a, const void *b) {
  return *(int*)a - *(int*)b;
}
int main(void){
  int no1, no2;
  scanf("%d%d", &no1, &no2);
  int num[no1];
  int dest[no1];
  int mod[no1];
  for(int i = 0; i < no1; i++) {
    scanf("%d", &num[i]);
  }
  for(int i = 0; i < no1; i++) {
    mod[i] = no2 % num[i];
  }
  memcpy(dest, num, sizeof(int) * no1);
  qsort(num, no1, sizeof(int), compare_int);
  int max = num[0];
  int min = mod[0];
  int n = 1;
  for(int i = 1; i < no1; i++) {
    if(max <= num[i] && min >= mod[i]) {
      max = num[i];
      min = mod[i];
      n = i + 1;
    }
  }
  int answer = 0;
  for(int i = 0; i < no1; i++) {
    if(num[n - 1] == dest[i])
      answer = i + 1;
  }
  printf("%d\n", answer);
  return 0;
}