우선 알고리즘 문제에 대한 링크입니다.
 
 
코드가 길어 죄송합니다
본래 표준입출력으로 해야하나 우선 파일입출력 형식으로 했습니다 (이것 때문에 오답처리 되는것은 아닌게
파일입출력의 경우 정답이여도 런타임 에러가 발생하는데 이 코드는 아예 틀렸습니다 라는 오답문구가 나옵니다 흐귝 ㅠㅠ)
 
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable: 4996) // scanf 관련해서 발생하는 에러 C4996을 해소하기 위해 삽입했습니다
 
int main()
{
 FILE *fp = fopen("Input.txt", "r");
 int d, i, j, k, l; // 반복문을 위한 변수
 int T; // 총 테스트케이스 반복 횟수
 int m, n, a, b, p, q; // m = 경기 수 / n = 팀 수 / a,b = 대결을 하는 두 팀 / p,q = 두 팀의 득점
 int goal = 0; // 총 득점
 int miss = 0; // 총 실점
 int twogoal = 0; // 득점 제곱
 int twomiss = 0; // 실점 제곱
 int MAX = 0; // 최대 기대값
 int MIN = 0; // 최소 기대값
 int **score = NULL; // 득,실점이 들어갈 2차원 배열 동적할당
 float *W = NULL; // 기대값이 들어갈 1차원 배열 동적할당
 
 if (fp == NULL)
 {
  printf("File Open Error.\n");
  exit(1);
 }
 fscanf(fp, "%d", &T);
 
 for (i = 0; i < T; i++)
 {
  fscanf(fp, "%d %d", &n, &m);
  score = (int **)malloc(sizeof(int *) * m);
  score[0] = (int *)malloc(sizeof(int) * n*m);
  W = (float *)malloc(sizeof(float) * n);
 
  for (d = 1; d < m; d++)
  {
   score[d] = score[d - 1] + n;
  }
 
  for (d = 0; d < m; d++)
  {
   for (l = 0; l < 2; l++)
   {
    score[d][l] = 0;
   }
  }
 
  for (d = 0; d < n; d++)
  {
   W[d] = 0;
  }
 
  for (j = 0; j < m; j++)
  {
   fscanf(fp, "%d %d %d %d", &a, &b, &p, &q);
 
   if ((a + b) > (m + n))
   {
    printf("파일 크기 에러.\n");
   }
 
   score[a - 1][0] += p;
   score[a - 1][1] += q;
   score[b - 1][0] += q;
   score[b - 1][1] += p;
  }
 
  for (k = 0; k < n; k++)
  {
   goal += score[k][0];
   miss += score[k][1];
   twogoal = goal*goal;
   twomiss = miss*miss;
 
   if (goal == 0 && miss == 0)
   {
    W[k] = 0;
   }
   else
   {
    W[k] = (float)(1000 * twogoal / (twogoal + twomiss));
   }
   goal = 0;
   miss = 0;
  }
 
  MAX = (int)W[0];
  MIN = (int)W[0];
 
  for (d = 1; d < n; d++)
  {
   if (MIN > W[d])
   {
    MIN = (int)W[d];
   }
   else if (MAX < W[d])
   {
    MAX = (int)W[d];
   }
  }
 
  printf("%d\n%d\n", MAX, MIN);
  MAX = 0;
  MIN = 0;
 }
 
 fclose(fp);
 free(score[0]);
 free(score);
 free(W);
 return 0;
}
 
 
문제에 대해서 어떻게 접근하고자 했냐면
 
문제에서 입력예제를 보면 각각의 팀을 1번팀, 2번팀, 3번팀.. 등으로 나타내는데
 
가령 1번팀의 총 득점이 10, 총 실점이 5라면
score[0][0] += 10

score[0][1] += 5..


2번팀의 총 득점이 15, 총 실점이 8이면

score[1][0] += 15

score[1][1] += 8..


이런 식으로 각각의 팀마다 2개의 인덱스값을 줘서 득점/실점을 구분할 수 있게 했고


또 이에 따라서 계산하면 결과도 제대로 나오고 입력을 다르게 바꿔봐도 값은 나오는데 백준에선 아예 오답이라고 채점한..


대체 무엇이 문제일까오 ㅜ.ㅜ