infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Stefan Istrate din Noiembrie 23, 2009, 19:42:09



Titlul: 953 Studenti
Scris de: Stefan Istrate din Noiembrie 23, 2009, 19:42:09
Aici puteti discuta despre problema Studenti (http://infoarena.ro/problema/studenti).


Titlul: Răspuns: 953 Studenti
Scris de: irimias robert din Noiembrie 26, 2009, 22:06:57
salut, imi puteti da va rog un exemplu pentru cazul al doilea adica atunci cand studentul cu greutate si cel cu inaltime maxima sunt in sali diferite, sau un exemplu mai complex, ca nicicum nu-mi dau seama ce gresesc


Titlul: Răspuns: 953 Studenti
Scris de: Ilie Ionut din Decembrie 29, 2009, 16:58:56
Uite niste exemple in care minimul se obtine in cazul al doilea (si raspunsurile pe care mi le da sursa de 100):
Cod:
9
61 14
40 98
17 10
37 24
24 81
45 99
35 53
20 94
8 73
Output: 15129

Cod:
8
35 20
97 31
31 100
71 60
65 69
81 71
47 61
84 42
Output: 31133

Cod:
9
49 59
58 3
56 36
57 74
2 75
72 11
30 42
67 15
89 5
Output: 18177

Cod:
8
57 35
88 77
6 72
41 45
99 71
13 40
23 66
1 86
Output: 22939

Sper sa te ajute.


Titlul: Răspuns: 953 Studenti
Scris de: Valentin Harsan din Mai 22, 2011, 16:05:31
se poate uita cineva pe sursa mea?
Cod:

#include<stdio.h>

short n,h[301],g[301],hmax,gmax,nr1,nr2,g1max,h1max,gmin,hmin;
int smin=2000000000,s;

int main() {
int i,j,k;
freopen("studenti.in","r",stdin);
freopen("studenti.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i) {
scanf("%d%d",&h[i],&g[i]);
if(h[i]>hmax) {
nr1=i;
hmax=h[i];
}
if(g[i]>gmax) {
nr2=i;
gmax=g[i];
}
}
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j) if(i!=nr1 && i!=nr2) {
s=(hmax+h[i]+h[j])*(gmax+g[i]+g[j]);
if(s<smin)
smin=s;
}
for(i=1;i<=n;++i) if(i!=nr1 && i!=nr2) {
for(j=1;j<=n;++j) if(j!=nr2 && j!=i && j!=nr1) {
gmin=20000; hmin=20000; g1max=0; h1max=0;
for(k=1;k<=n;++k) if(k!=nr1 && k!=nr2 && k!=i && k!=j) {
if((h[k]>h[i] && h[k]>h[nr2]) && (g[k]>g[j] && g[k]>g[nr1])) {
if(h[k]>h1max)
h1max=h[k];
if(g[k]>g1max)
g1max=g[k];
}
if(h[k]<hmin)
hmin=h[k];
if(g[k]<=gmin)
gmin=g[k];
}
if(g1max!=0) {
s=(hmax+h[i]+h1max)*(gmax+g[j]+g1max);
if(s<smin)
smin=s;
}
else {
for(k=1;k<=n;++k) if(k!=nr1 && k!=nr2 && k!=i && k!=j) {
s=(hmax+h[i]+h[k])*(gmax+g[j]+g[k]);
if(s<smin)
smin=s;
}
}
}
}
printf("%d\n",smin);
return 0;
}


Titlul: Răspuns: 953 Studenti
Scris de: UAIC.VlasCatalin din Noiembrie 24, 2011, 15:09:19
Stie cineva ce e special la testul 4, doar la el iau incorect si chiar nustiu ce ar putea fi?? :? :? ](*,)