# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
712735 | Gerardo_vega | Poi (IOI09_poi) | Java | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
/**
*
* @author Gerardo S
*/
class participant {
int Id;
int Points;
int Resolved;
int[] ProblemsResolved;
public participant(int id, int points, int resolved, int nProblems){
Id=id;
Points=points;
Resolved=resolved;
ProblemsResolved=new int[nProblems];
}
}
public class POI {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int nproblems=in.nextInt();
int philipId=in.nextInt();
participant[] p=new participant[n];
int[] problemsRecount=new int[nproblems];
for (int i = 0; i < n; i++) {
p[i]=new participant(i+1,0,0,nproblems);
for (int j = 0; j < nproblems; j++) {
int isResolved=in.nextInt();
if(isResolved==1){
problemsRecount[j]++;
p[i].ProblemsResolved[j]=1;
}
p[i].Resolved++;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < nproblems; j++) {
if(p[i].ProblemsResolved[j]==1){
p[i].Points+=n-problemsRecount[j];
}
}
}
Comparator<participant> comparadorPorEdad = new Comparator<participant>() {
@Override
public int compare(participant persona1, participant persona2) {
if (persona1.Points>=persona2.Points) {
if(persona1.Points>persona2.Points){
return -1;
}else{
//en este punto, sabemos que tienen los mismos puntos.
if(persona1.Resolved>persona2.Resolved){
return -1;
}else{
if(persona1.Resolved==persona2.Resolved){
if(persona1.Id<persona2.Id){
return -1;
}else{
return 1;
}
}else{
if(persona1.Resolved<persona2.Resolved){
return 1;
}else{
return -1;
}
}
}
}
}
return 1;
}
};
Arrays.sort(p, comparadorPorEdad);
for (int i = 0; i < p.length; i++) {
if(p[i].Id==philipId){
System.out.println(p[i].Points+" "+(i+1));
}
}
}
}