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 |
|
|
|
|
|
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 |