Submission #1625130


Source Code Expand

#include <iostream>
#include <vector>
using namespace std;

void ranking(int* list, size_t length){
	int rank[length];
	int nowrank = 1;
	while(nowrank <= length){
		int max = list[0];
		vector<int> max_list{0};
		for(int i = 1; i < length; i++){
			if(list[i] > max){
				max = list[i];
				max_list.clear();
				max_list.push_back(i);
			}else if(list[i] == max){
				max_list.push_back(i);
			}
		}
		for(int i = 0; i < max_list.size(); i++){
			rank[max_list[i]] = nowrank;
			list[max_list[i]] = -1;
		}
		nowrank += max_list.size();
		max_list.clear();
	}
	for(int i = 0; i < length; i++){
		list[i] = rank[i];
	}
}

int main(){
	int N;
	cin >> N;
	int scores[N];
	for(int i = 0; i < N; i++){
		scores[i] = 0; 
	}
	for(int i = 0; i < N * (N - 1) / 2; i++){
		int A, B, C, D;
		cin >> A >> B >> C >> D;
		if(C > D){
			scores[A - 1] += 3;
		}else if(C == D){
			scores[A - 1]++;
			scores[B - 1]++;
		}else{
			scores[B - 1] += 3;
		}
	}
	ranking(scores, sizeof scores / sizeof scores[0]);
	for(int i = 0; i < N; i++){
		cout << scores[i] << endl;
	}
}

Submission Info

Submission Time
Task B - サッカー (Soccer)
User June_boy
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1111 Byte
Status AC
Exec Time 5 ms
Memory 256 KB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 1 ms 256 KB
data2 AC 4 ms 256 KB
data3 AC 5 ms 256 KB
data4 AC 5 ms 256 KB
data5 AC 5 ms 256 KB