blob: 697622a814ea565c37ff84b2cf32eec58e8edd32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/*
INPUT:
18
12 6
11 8
15 8
15 20
13 18
12 23
11 40
15 19
11 25
13 36
15 12
12 18
17 11
23 9
28 22
35 26
11 23
15 12
output:
11 96 */
#include <iostream>
#include <fstream>
using namespace std;
struct punteggioGiocatori
{
int idGiocatore;
int punteggio;
} player[100];
int ricercaIdGiocatore(int valore, struct punteggioGiocatori* p);
int main()
{
ifstream in("input.txt");
ofstream out("output.txt");
int N, i, pPlayer, j = 0, rID, nVal, t[2];
bool s;
in >> N;
for(i = 0; i < N; i++) {
player[i].idGiocatore = 0;
player[i].punteggio = 0;
}
for(i = 0; i < N; i++) {
in >> pPlayer;
rID = ricercaIdGiocatore(pPlayer, player);
if(rID == -1) {
player[j].idGiocatore = pPlayer;
in >> player[j].punteggio;
j++;
} else {
in >> nVal;
player[rID].punteggio += nVal;
}
}
int last = j;
do {
s = false;
for(int k = 0; k < last; k++)
{
if(player[k].punteggio < player[k+1].punteggio) {
t[0] = player[k].idGiocatore;
t[1] = player[k].punteggio;
player[k].idGiocatore = player[k+1].idGiocatore;
player[k].punteggio = player[k+1].punteggio;
player[k+1].idGiocatore = t[0];
player[k+1].punteggio = t[1];
s = true;
}
}
last--;
} while(s);
out << player[0].idGiocatore << " " << player[0].punteggio << endl;
in.close();
out.close();
}
int ricercaIdGiocatore(int valore, struct punteggioGiocatori* p)
{
int rID = -1;
for(int i = 0; i < 100; i++)
{
if(p[i].idGiocatore == valore) {
rID = i;
break;
}
}
return rID;
}
|